<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Interactive BOM for KiCAD</title>
  <style type="text/css">
:root {
  --pcb-edge-color: black;
  --pad-color: #878787;
  --pad-hole-color: #CCCCCC;
  --pad-color-highlight: #D04040;
  --pad-color-highlight-both: #D0D040;
  --pad-color-highlight-marked: #44a344;
  --pin1-outline-color: #ffb629;
  --pin1-outline-color-highlight: #ffb629;
  --pin1-outline-color-highlight-both: #fcbb39;
  --pin1-outline-color-highlight-marked: #fdbe41;
  --silkscreen-edge-color: #aa4;
  --silkscreen-polygon-color: #4aa;
  --silkscreen-text-color: #4aa;
  --fabrication-edge-color: #907651;
  --fabrication-polygon-color: #907651;
  --fabrication-text-color: #a27c24;
  --track-color: #def5f1;
  --track-color-highlight: #D04040;
  --zone-color: #def5f1;
  --zone-color-highlight: #d0404080;
}

html,
body {
  margin: 0px;
  height: 100%;
  font-family: Verdana, sans-serif;
}

.dark.topmostdiv {
  --pcb-edge-color: #eee;
  --pad-color: #808080;
  --pin1-outline-color: #ffa800;
  --pin1-outline-color-highlight: #ccff00;
  --track-color: #42524f;
  --zone-color: #42524f;
  background-color: #252c30;
  color: #eee;
}

button {
  background-color: #eee;
  border: 1px solid #888;
  color: black;
  height: 44px;
  width: 44px;
  text-align: center;
  text-decoration: none;
  display: inline-block;
  font-size: 14px;
  font-weight: bolder;
}

.dark button {
  /* This will be inverted */
  background-color: #c3b7b5;
}

button.depressed {
  background-color: #0a0;
  color: white;
}

.dark button.depressed {
  /* This will be inverted */
  background-color: #b3b;
}

button:focus {
  outline: 0;
}

button#tb-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.32 290.12h5.82M1.32 291.45h5.82' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 292.5v4.23M.26 292.63H8.2' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='1.35' y='295.73'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
}

button#lr-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' fill='none' stroke='%23000' stroke-width='.4' stroke-linejoin='round'/%3E%3Cpath d='M1.06 290.12H3.7m-2.64 1.33H3.7m-2.64 1.32H3.7m-2.64 1.3H3.7m-2.64 1.33H3.7' fill='none' stroke='%23000' stroke-width='.4'/%3E%3Cpath d='M4.37 288.8v7.94m0-4.11h3.96' fill='none' stroke='%23000' stroke-width='.3'/%3E%3Ctext font-weight='700' font-size='3.17' font-family='sans-serif'%3E%3Ctspan x='5.11' y='291.96'%3EF%3C/tspan%3E%3Ctspan x='5.03' y='295.68'%3EB%3C/tspan%3E%3C/text%3E%3C/g%3E%3C/svg%3E%0A");
}

button#bom-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8.47 8.47'%3E%3Crect transform='translate(0 -288.53)' ry='1.17' y='288.8' x='.27' height='7.94' width='7.94' fill='%23f9f9f9'/%3E%3Cg transform='translate(0 -288.53)' fill='none' stroke='%23000' stroke-width='.4'%3E%3Crect width='7.94' height='7.94' x='.27' y='288.8' ry='1.17' stroke-linejoin='round'/%3E%3Cpath d='M1.59 290.12h5.29M1.59 291.45h5.33M1.59 292.75h5.33M1.59 294.09h5.33M1.59 295.41h5.33'/%3E%3C/g%3E%3C/svg%3E");
}

button#bom-grouped-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m4 0h5m4 0h3M6.1 22h3m3.9 0h5m4 0h4m-16-8h4m4 0h4'/%3E%3Cpath stroke-linecap='null' d='M5 17.5h22M5 26.6h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
}

button#bom-ungrouped-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg stroke='%23000' stroke-linejoin='round' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-linecap='square' stroke-width='2' d='M6 10h4m-4 8h3m-3 8h4'/%3E%3Cpath stroke-linecap='null' d='M5 13.5h22m-22 8h22M5 5.5h22'/%3E%3C/g%3E%3C/svg%3E");
}

button#bom-netlist-btn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cg fill='none' stroke='%23000' class='layer'%3E%3Crect width='29' height='29' x='1.5' y='1.5' stroke-width='2' fill='%23fff' rx='5' ry='5'/%3E%3Cpath stroke-width='2' d='M6 26l6-6v-8m13.8-6.3l-6 6v8'/%3E%3Ccircle cx='11.8' cy='9.5' r='2.8' stroke-width='2'/%3E%3Ccircle cx='19.8' cy='22.8' r='2.8' stroke-width='2'/%3E%3C/g%3E%3C/svg%3E");
}

button#copy {
  background-image: url("data:image/svg+xml,%3Csvg height='48' viewBox='0 0 48 48' width='48' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h48v48h-48z' fill='none'/%3E%3Cpath d='M32 2h-24c-2.21 0-4 1.79-4 4v28h4v-28h24v-4zm6 8h-22c-2.21 0-4 1.79-4 4v28c0 2.21 1.79 4 4 4h22c2.21 0 4-1.79 4-4v-28c0-2.21-1.79-4-4-4zm0 32h-22v-28h22v28z'/%3E%3C/svg%3E");
  background-position: 6px 6px;
  background-repeat: no-repeat;
  background-size: 26px 26px;
  border-radius: 6px;
  height: 40px;
  width: 40px;
  margin: 10px 5px;
}

button#copy:active {
  box-shadow: inset 0px 0px 5px #6c6c6c;
}

textarea.clipboard-temp {
  position: fixed;
  top: 0;
  left: 0;
  width: 2em;
  height: 2em;
  padding: 0;
  border: None;
  outline: None;
  box-shadow: None;
  background: transparent;
}

.left-most-button {
  border-right: 0;
  border-top-left-radius: 6px;
  border-bottom-left-radius: 6px;
}

.middle-button {
  border-right: 0;
}

.right-most-button {
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
}

.button-container {
  font-size: 0;
  margin: 0.4rem 0.4rem 0.4rem 0;
}

.dark .button-container {
  filter: invert(1);
}

.button-container button {
  background-size: 32px 32px;
  background-position: 5px 5px;
  background-repeat: no-repeat;
}

@media print {
  .hideonprint {
    display: none;
  }
}

canvas {
  cursor: crosshair;
}

canvas:active {
  cursor: grabbing;
}

.fileinfo {
  width: 100%;
  max-width: 1000px;
  border: none;
  padding: 3px;
}

.fileinfo .title {
  font-size: 20pt;
  font-weight: bold;
}

.fileinfo td {
  overflow: hidden;
  white-space: nowrap;
  max-width: 1px;
  width: 50%;
  text-overflow: ellipsis;
}

.bom {
  border-collapse: collapse;
  font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
  font-size: 10pt;
  table-layout: fixed;
  width: 100%;
  margin-top: 1px;
  position: relative;
}

.bom th,
.bom td {
  border: 1px solid black;
  padding: 5px;
  word-wrap: break-word;
  text-align: center;
  position: relative;
}

.dark .bom th,
.dark .bom td {
  border: 1px solid #777;
}

.bom th {
  background-color: #CCCCCC;
  background-clip: padding-box;
}

.dark .bom th {
  background-color: #3b4749;
}

.bom tr.highlighted:nth-child(n) {
  background-color: #cfc;
}

.dark .bom tr.highlighted:nth-child(n) {
  background-color: #226022;
}

.bom tr:nth-child(even) {
  background-color: #f2f2f2;
}

.dark .bom tr:nth-child(even) {
  background-color: #313b40;
}

.bom tr.checked {
  color: #1cb53d;
}

.dark .bom tr.checked {
  color: #2cce54;
}

.bom tr {
  transition: background-color 0.2s;
}

.bom .numCol {
  width: 30px;
}

.bom .value {
  width: 15%;
}

.bom .quantity {
  width: 65px;
}

.bom th .sortmark {
  position: absolute;
  right: 1px;
  top: 1px;
  margin-top: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: transparent transparent #221 transparent;
  transform-origin: 50% 85%;
  transition: opacity 0.2s, transform 0.4s;
}

.dark .bom th .sortmark {
  filter: invert(1);
}

.bom th .sortmark.none {
  opacity: 0;
}

.bom th .sortmark.desc {
  transform: rotate(180deg);
}

.bom th:hover .sortmark.none {
  opacity: 0.5;
}

.bom .bom-checkbox {
  width: 30px;
  position: relative;
  user-select: none;
  -moz-user-select: none;
}

.bom .bom-checkbox:before {
  content: "";
  position: absolute;
  border-width: 15px;
  border-style: solid;
  border-color: #51829f transparent transparent transparent;
  visibility: hidden;
  top: -15px;
}

.bom .bom-checkbox:after {
  content: "Double click to set/unset all";
  position: absolute;
  color: white;
  top: -35px;
  left: -26px;
  background: #51829f;
  padding: 5px 15px;
  border-radius: 8px;
  white-space: nowrap;
  visibility: hidden;
}

.bom .bom-checkbox:hover:before,
.bom .bom-checkbox:hover:after {
  visibility: visible;
  transition: visibility 0.2s linear 1s;
}

.split {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  overflow-y: auto;
  overflow-x: hidden;
  background-color: inherit;
}

.split.split-horizontal,
.gutter.gutter-horizontal {
  height: 100%;
  float: left;
}

.gutter {
  background-color: #ddd;
  background-repeat: no-repeat;
  background-position: 50%;
  transition: background-color 0.3s;
}

.dark .gutter {
  background-color: #777;
}

.gutter.gutter-horizontal {
  background-image: url('');
  cursor: ew-resize;
  width: 5px;
}

.gutter.gutter-vertical {
  background-image: url('');
  cursor: ns-resize;
  height: 5px;
}

.searchbox {
  float: left;
  height: 40px;
  margin: 10px 5px;
  padding: 12px 32px;
  font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
  font-size: 18px;
  box-sizing: border-box;
  border: 1px solid #888;
  border-radius: 6px;
  outline: none;
  background-color: #eee;
  transition: background-color 0.2s, border 0.2s;
  background-image: url('');
  background-position: 10px 10px;
  background-repeat: no-repeat;
}

.dark .searchbox {
  background-color: #111;
  color: #eee;
}

.searchbox::placeholder {
  color: #ccc;
}

.dark .searchbox::placeholder {
  color: #666;
}

.filter {
  width: calc(60% - 64px);
}

.reflookup {
  width: calc(40% - 10px);
}

input[type=text]:focus {
  background-color: white;
  border: 1px solid #333;
}

.dark input[type=text]:focus {
  background-color: #333;
  border: 1px solid #ccc;
}

mark.highlight {
  background-color: #5050ff;
  color: #fff;
  padding: 2px;
  border-radius: 6px;
}

.dark mark.highlight {
  background-color: #76a6da;
  color: #111;
}

.menubtn {
  background-color: white;
  border: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 20 20'%3E%3Cpath fill='none' d='M0 0h20v20H0V0z'/%3E%3Cpath d='M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z'/%3E%3C/svg%3E%0A");
  background-position: center;
  background-repeat: no-repeat;
}

.statsbtn {
  background-color: white;
  border: none;
  background-image: url("data:image/svg+xml,%3Csvg width='36' height='36' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M4 6h28v24H4V6zm0 8h28v8H4m9-16v24h10V5.8' fill='none' stroke='%23000' stroke-width='2'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
}

.iobtn {
  background-color: white;
  border: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' d='M3 33v-7l6.8-7h16.5l6.7 7v7H3zM3.2 26H33M21 9l5-5.9 5 6h-2.5V15h-5V9H21zm-4.9 0l-5 6-5-6h2.5V3h5v6h2.5z'/%3E%3Cpath fill='none' stroke='%23000' d='M6.1 29.5H10'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
}

.visbtn {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath fill='none' stroke='%23333' d='M2.5 4.5h5v15h-5zM9.5 4.5h5v15h-5zM16.5 4.5h5v15h-5z'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  padding: 15px;
}

#vismenu-content {
  left: 0px;
  font-family: Verdana, sans-serif;
}

.dark .statsbtn,
.dark .savebtn,
.dark .menubtn,
.dark .iobtn,
.dark .visbtn {
  filter: invert(1);
}

.flexbox {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

.savebtn {
  background-color: #d6d6d6;
  width: auto;
  height: 30px;
  flex-grow: 1;
  margin: 5px;
  border-radius: 4px;
}

.savebtn:active {
  background-color: #0a0;
  color: white;
}

.dark .savebtn:active {
  /* This will be inverted */
  background-color: #b3b;
}

.stats {
  border-collapse: collapse;
  font-size: 12pt;
  table-layout: fixed;
  width: 100%;
  min-width: 450px;
}

.dark .stats td {
  border: 1px solid #bbb;
}

.stats td {
  border: 1px solid black;
  padding: 5px;
  word-wrap: break-word;
  text-align: center;
  position: relative;
}

#checkbox-stats div {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

#checkbox-stats .bar {
  background-color: rgba(28, 251, 0, 0.6);
}

.menu {
  position: relative;
  display: inline-block;
  margin: 0.4rem 0.4rem 0.4rem 0;
}

.menu-content {
  font-size: 12pt !important;
  text-align: left !important;
  font-weight: normal !important;
  display: none;
  position: absolute;
  background-color: white;
  right: 0;
  min-width: 300px;
  box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
  z-index: 100;
  padding: 8px;
}

.dark .menu-content {
  background-color: #111;
}

.menu:hover .menu-content {
  display: block;
}

.menu:hover .menubtn,
.menu:hover .iobtn,
.menu:hover .statsbtn {
  background-color: #eee;
}

.menu-label {
  display: inline-block;
  padding: 8px;
  border: 1px solid #ccc;
  border-top: 0;
  width: calc(100% - 18px);
}

.menu-label-top {
  border-top: 1px solid #ccc;
}

.menu-textbox {
  float: left;
  height: 24px;
  margin: 10px 5px;
  padding: 5px 5px;
  font-family: Consolas, "DejaVu Sans Mono", Monaco, monospace;
  font-size: 14px;
  box-sizing: border-box;
  border: 1px solid #888;
  border-radius: 4px;
  outline: none;
  background-color: #eee;
  transition: background-color 0.2s, border 0.2s;
  width: calc(100% - 10px);
}

.menu-textbox.invalid,
.dark .menu-textbox.invalid {
  color: red;
}

.dark .menu-textbox {
  background-color: #222;
  color: #eee;
}

.radio-container {
  margin: 4px;
}

.topmostdiv {
  display: flex;
  flex-direction: column;
  width: 100%;
  background-color: white;
  transition: background-color 0.3s;
}

#top {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
}

#topdivider {
  border-bottom: 2px solid black;
  display: flex;
  justify-content: center;
  align-items: center;
}

.dark #topdivider {
  border-bottom: 2px solid #ccc;
}

#topdivider>div {
  position: relative;
}

#toptoggle {
  cursor: pointer;
  user-select: none;
  position: absolute;
  padding: 0.1rem 0.3rem;
  top: -0.4rem;
  left: -1rem;
  font-size: 1.4rem;
  line-height: 60%;
  border: 1px solid black;
  border-radius: 1rem;
  background-color: #fff;
  z-index: 100;
}

.flipped {
  transform: rotate(0.5turn);
}

.dark #toptoggle {
  border: 1px solid #fff;
  background-color: #222;
}

#fileinfodiv {
  flex: 20rem 1 0;
  overflow: auto;
}

#bomcontrols {
  display: flex;
  flex-direction: row-reverse;
}

#bomcontrols>* {
  flex-shrink: 0;
}

#dbg {
  display: block;
}

::-webkit-scrollbar {
  width: 8px;
}

::-webkit-scrollbar-track {
  background: #aaa;
}

::-webkit-scrollbar-thumb {
  background: #666;
  border-radius: 3px;
}

::-webkit-scrollbar-thumb:hover {
  background: #555;
}

.slider {
  -webkit-appearance: none;
  width: 100%;
  margin: 3px 0;
  padding: 0;
  outline: none;
  opacity: 0.7;
  -webkit-transition: .2s;
  transition: opacity .2s;
  border-radius: 3px;
}

.slider:hover {
  opacity: 1;
}

.slider:focus {
  outline: none;
}

.slider::-webkit-slider-runnable-track {
  -webkit-appearance: none;
  width: 100%;
  height: 8px;
  background: #d3d3d3;
  border-radius: 3px;
  border: none;
}

.slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #0a0;
  cursor: pointer;
  margin-top: -4px;
}

.dark .slider::-webkit-slider-thumb {
  background: #3d3;
}

.slider::-moz-range-thumb {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #0a0;
  cursor: pointer;
}

.slider::-moz-range-track {
  height: 8px;
  background: #d3d3d3;
  border-radius: 3px;
}

.dark .slider::-moz-range-thumb {
  background: #3d3;
}

.slider::-ms-track {
  width: 100%;
  height: 8px;
  border-width: 3px 0;
  background: transparent;
  border-color: transparent;
  color: transparent;
  transition: opacity .2s;
}

.slider::-ms-fill-lower {
  background: #d3d3d3;
  border: none;
  border-radius: 3px;
}

.slider::-ms-fill-upper {
  background: #d3d3d3;
  border: none;
  border-radius: 3px;
}

.slider::-ms-thumb {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #0a0;
  cursor: pointer;
  margin: 0;
}

.shameless-plug {
  font-size: 0.8em;
  text-align: center;
  display: block;
}

a {
  color: #0278a4;
}

.dark a {
  color: #00b9fd;
}

#frontcanvas,
#backcanvas {
  touch-action: none;
}

.placeholder {
  border: 1px dashed #9f9fda !important;
  background-color: #edf2f7 !important;
}

.dragging {
  z-index: 999;
}

.dark .dragging>table>tbody>tr {
  background-color: #252c30;
}

.dark .placeholder {
  filter: invert(1);
}

.column-spacer {
  top: 0;
  left: 0;
  width: calc(100% - 4px);
  position: absolute;
  cursor: pointer;
  user-select: none;
  height: 100%;
}

.column-width-handle {
  top: 0;
  right: 0;
  width: 4px;
  position: absolute;
  cursor: col-resize;
  user-select: none;
  height: 100%;
}

.column-width-handle:hover {
  background-color: #4f99bd;
}

.help-link {
  border: 1px solid #0278a4;
  padding-inline: 0.3rem;
  border-radius: 3px;
  cursor: pointer;
}

.dark .help-link {
  border: 1px solid #00b9fd;
}

.bom-color {
  width: 20%;
}

.color-column input {
  width: 1.6rem;
  height: 1rem;
  border: 1px solid black;
  cursor: pointer;
  padding: 0;
}

/* removes default styling from input color element */
::-webkit-color-swatch {
  border: none;
}

::-webkit-color-swatch-wrapper {
  padding: 0;
}

::-moz-color-swatch,
::-moz-focus-inner {
  border: none;
}

::-moz-focus-inner {
  padding: 0;
}
/* #bomhead {
    position: sticky;
    top: 0px;
    z-index: 1;
} */
  </style>
  <script type="text/javascript" >
///////////////////////////////////////////////
/*
  Split.js - v1.3.5
  MIT License
  https://github.com/nathancahill/Split.js
*/
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Split=t()}(this,function(){"use strict";var e=window,t=e.document,n="addEventListener",i="removeEventListener",r="getBoundingClientRect",s=function(){return!1},o=e.attachEvent&&!e[n],a=["","-webkit-","-moz-","-o-"].filter(function(e){var n=t.createElement("div");return n.style.cssText="width:"+e+"calc(9px)",!!n.style.length}).shift()+"calc",l=function(e){return"string"==typeof e||e instanceof String?t.querySelector(e):e};return function(u,c){function z(e,t,n){var i=A(y,t,n);Object.keys(i).forEach(function(t){return e.style[t]=i[t]})}function h(e,t){var n=B(y,t);Object.keys(n).forEach(function(t){return e.style[t]=n[t]})}function f(e){var t=E[this.a],n=E[this.b],i=t.size+n.size;t.size=e/this.size*i,n.size=i-e/this.size*i,z(t.element,t.size,this.aGutterSize),z(n.element,n.size,this.bGutterSize)}function m(e){var t;this.dragging&&((t="touches"in e?e.touches[0][b]-this.start:e[b]-this.start)<=E[this.a].minSize+M+this.aGutterSize?t=E[this.a].minSize+this.aGutterSize:t>=this.size-(E[this.b].minSize+M+this.bGutterSize)&&(t=this.size-(E[this.b].minSize+this.bGutterSize)),f.call(this,t),c.onDrag&&c.onDrag())}function g(){var e=E[this.a].element,t=E[this.b].element;this.size=e[r]()[y]+t[r]()[y]+this.aGutterSize+this.bGutterSize,this.start=e[r]()[G]}function d(){var t=this,n=E[t.a].element,r=E[t.b].element;t.dragging&&c.onDragEnd&&c.onDragEnd(),t.dragging=!1,e[i]("mouseup",t.stop),e[i]("touchend",t.stop),e[i]("touchcancel",t.stop),t.parent[i]("mousemove",t.move),t.parent[i]("touchmove",t.move),delete t.stop,delete t.move,n[i]("selectstart",s),n[i]("dragstart",s),r[i]("selectstart",s),r[i]("dragstart",s),n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",r.style.userSelect="",r.style.webkitUserSelect="",r.style.MozUserSelect="",r.style.pointerEvents="",t.gutter.style.cursor="",t.parent.style.cursor=""}function S(t){var i=this,r=E[i.a].element,o=E[i.b].element;!i.dragging&&c.onDragStart&&c.onDragStart(),t.preventDefault(),i.dragging=!0,i.move=m.bind(i),i.stop=d.bind(i),e[n]("mouseup",i.stop),e[n]("touchend",i.stop),e[n]("touchcancel",i.stop),i.parent[n]("mousemove",i.move),i.parent[n]("touchmove",i.move),r[n]("selectstart",s),r[n]("dragstart",s),o[n]("selectstart",s),o[n]("dragstart",s),r.style.userSelect="none",r.style.webkitUserSelect="none",r.style.MozUserSelect="none",r.style.pointerEvents="none",o.style.userSelect="none",o.style.webkitUserSelect="none",o.style.MozUserSelect="none",o.style.pointerEvents="none",i.gutter.style.cursor=j,i.parent.style.cursor=j,g.call(i)}function v(e){e.forEach(function(t,n){if(n>0){var i=F[n-1],r=E[i.a],s=E[i.b];r.size=e[n-1],s.size=t,z(r.element,r.size,i.aGutterSize),z(s.element,s.size,i.bGutterSize)}})}function p(){F.forEach(function(e){e.parent.removeChild(e.gutter),E[e.a].element.style[y]="",E[e.b].element.style[y]=""})}void 0===c&&(c={});var y,b,G,E,w=l(u[0]).parentNode,D=e.getComputedStyle(w).flexDirection,U=c.sizes||u.map(function(){return 100/u.length}),k=void 0!==c.minSize?c.minSize:100,x=Array.isArray(k)?k:u.map(function(){return k}),L=void 0!==c.gutterSize?c.gutterSize:10,M=void 0!==c.snapOffset?c.snapOffset:30,O=c.direction||"horizontal",j=c.cursor||("horizontal"===O?"ew-resize":"ns-resize"),C=c.gutter||function(e,n){var i=t.createElement("div");return i.className="gutter gutter-"+n,i},A=c.elementStyle||function(e,t,n){var i={};return"string"==typeof t||t instanceof String?i[e]=t:i[e]=o?t+"%":a+"("+t+"% - "+n+"px)",i},B=c.gutterStyle||function(e,t){return n={},n[e]=t+"px",n;var n};"horizontal"===O?(y="width","clientWidth",b="clientX",G="left","paddingLeft"):"vertical"===O&&(y="height","clientHeight",b="clientY",G="top","paddingTop");var F=[];return E=u.map(function(e,t){var i,s={element:l(e),size:U[t],minSize:x[t]};if(t>0&&(i={a:t-1,b:t,dragging:!1,isFirst:1===t,isLast:t===u.length-1,direction:O,parent:w},i.aGutterSize=L,i.bGutterSize=L,i.isFirst&&(i.aGutterSize=L/2),i.isLast&&(i.bGutterSize=L/2),"row-reverse"===D||"column-reverse"===D)){var a=i.a;i.a=i.b,i.b=a}if(!o&&t>0){var c=C(t,O);h(c,L),c[n]("mousedown",S.bind(i)),c[n]("touchstart",S.bind(i)),w.insertBefore(c,s.element),i.gutter=c}0===t||t===u.length-1?z(s.element,s.size,L/2):z(s.element,s.size,L);var f=s.element[r]()[y];return f<s.minSize&&(s.minSize=f),t>0&&F.push(i),s}),o?{setSizes:v,destroy:p}:{setSizes:v,getSizes:function(){return E.map(function(e){return e.size})},collapse:function(e){if(e===F.length){var t=F[e-1];g.call(t),o||f.call(t,t.size-t.bGutterSize)}else{var n=F[e];g.call(n),o||f.call(n,n.aGutterSize)}},destroy:p}}});

///////////////////////////////////////////////

///////////////////////////////////////////////
// Copyright (c) 2013 Pieroxy <pieroxy@pieroxy.net>
// This work is free. You can redistribute it and/or modify it
// under the terms of the WTFPL, Version 2
// For more information see LICENSE.txt or http://www.wtfpl.net/
//
// For more information, the home page:
// http://pieroxy.net/blog/pages/lz-string/testing.html
//
// LZ-based compression algorithm, version 1.4.4
var LZString=function(){var o=String.fromCharCode,i={};var n={decompressFromBase64:function(o){return null==o?"":""==o?null:n._decompress(o.length,32,function(n){return function(o,n){if(!i[o]){i[o]={};for(var t=0;t<o.length;t++)i[o][o.charAt(t)]=t}return i[o][n]}("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o.charAt(n))})},_decompress:function(i,n,t){var r,e,a,s,p,u,l,f=[],c=4,d=4,h=3,v="",g=[],m={val:t(0),position:n,index:1};for(r=0;r<3;r+=1)f[r]=r;for(a=0,p=Math.pow(2,2),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;l=o(a);break;case 2:return""}for(f[3]=l,e=l,g.push(l);;){if(m.index>i)return"";for(a=0,p=Math.pow(2,h),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;switch(l=a){case 0:for(a=0,p=Math.pow(2,8),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 1:for(a=0,p=Math.pow(2,16),u=1;u!=p;)s=m.val&m.position,m.position>>=1,0==m.position&&(m.position=n,m.val=t(m.index++)),a|=(s>0?1:0)*u,u<<=1;f[d++]=o(a),l=d-1,c--;break;case 2:return g.join("")}if(0==c&&(c=Math.pow(2,h),h++),f[l])v=f[l];else{if(l!==d)return null;v=e+e.charAt(0)}g.push(v),f[d++]=e+v.charAt(0),e=v,0==--c&&(c=Math.pow(2,h),h++)}}};return n}();"function"==typeof define&&define.amd?define(function(){return LZString}):"undefined"!=typeof module&&null!=module?module.exports=LZString:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",function(){return LZString});
///////////////////////////////////////////////

///////////////////////////////////////////////
/*!
 * PEP v0.4.3 | https://github.com/jquery/PEP
 * Copyright jQuery Foundation and other contributors | http://jquery.org/license
 */
!function(a,b){"object"==typeof exports&&"undefined"!=typeof module?module.exports=b():"function"==typeof define&&define.amd?define(b):a.PointerEventsPolyfill=b()}(this,function(){"use strict";function a(a,b){b=b||Object.create(null);var c=document.createEvent("Event");c.initEvent(a,b.bubbles||!1,b.cancelable||!1);
for(var d,e=2;e<m.length;e++)d=m[e],c[d]=b[d]||n[e];c.buttons=b.buttons||0;
var f=0;return f=b.pressure&&c.buttons?b.pressure:c.buttons?.5:0,c.x=c.clientX,c.y=c.clientY,c.pointerId=b.pointerId||0,c.width=b.width||0,c.height=b.height||0,c.pressure=f,c.tiltX=b.tiltX||0,c.tiltY=b.tiltY||0,c.twist=b.twist||0,c.tangentialPressure=b.tangentialPressure||0,c.pointerType=b.pointerType||"",c.hwTimestamp=b.hwTimestamp||0,c.isPrimary=b.isPrimary||!1,c}function b(){this.array=[],this.size=0}function c(a,b,c,d){this.addCallback=a.bind(d),this.removeCallback=b.bind(d),this.changedCallback=c.bind(d),A&&(this.observer=new A(this.mutationWatcher.bind(this)))}function d(a){return"body /shadow-deep/ "+e(a)}function e(a){return'[touch-action="'+a+'"]'}function f(a){return"{ -ms-touch-action: "+a+"; touch-action: "+a+"; }"}function g(){if(F){D.forEach(function(a){String(a)===a?(E+=e(a)+f(a)+"\n",G&&(E+=d(a)+f(a)+"\n")):(E+=a.selectors.map(e)+f(a.rule)+"\n",G&&(E+=a.selectors.map(d)+f(a.rule)+"\n"))});var a=document.createElement("style");a.textContent=E,document.head.appendChild(a)}}function h(){if(!window.PointerEvent){if(window.PointerEvent=a,window.navigator.msPointerEnabled){var b=window.navigator.msMaxTouchPoints;Object.defineProperty(window.navigator,"maxTouchPoints",{value:b,enumerable:!0}),u.registerSource("ms",_)}else Object.defineProperty(window.navigator,"maxTouchPoints",{value:0,enumerable:!0}),u.registerSource("mouse",N),void 0!==window.ontouchstart&&u.registerSource("touch",V);u.register(document)}}function i(a){if(!u.pointermap.has(a)){var b=new Error("InvalidPointerId");throw b.name="InvalidPointerId",b}}function j(a){for(var b=a.parentNode;b&&b!==a.ownerDocument;)b=b.parentNode;if(!b){var c=new Error("InvalidStateError");throw c.name="InvalidStateError",c}}function k(a){var b=u.pointermap.get(a);return 0!==b.buttons}function l(){window.Element&&!Element.prototype.setPointerCapture&&Object.defineProperties(Element.prototype,{setPointerCapture:{value:W},releasePointerCapture:{value:X},hasPointerCapture:{value:Y}})}
var m=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","pageX","pageY"],n=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0],o=window.Map&&window.Map.prototype.forEach,p=o?Map:b;b.prototype={set:function(a,b){return void 0===b?this["delete"](a):(this.has(a)||this.size++,void(this.array[a]=b))},has:function(a){return void 0!==this.array[a]},"delete":function(a){this.has(a)&&(delete this.array[a],this.size--)},get:function(a){return this.array[a]},clear:function(){this.array.length=0,this.size=0},forEach:function(a,b){return this.array.forEach(function(c,d){a.call(b,c,d,this)},this)}};var q=["bubbles","cancelable","view","detail","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","buttons","pointerId","width","height","pressure","tiltX","tiltY","pointerType","hwTimestamp","isPrimary","type","target","currentTarget","which","pageX","pageY","timeStamp"],r=[!1,!1,null,null,0,0,0,0,!1,!1,!1,!1,0,null,0,0,0,0,0,0,0,"",0,!1,"",null,null,0,0,0,0],s={pointerover:1,pointerout:1,pointerenter:1,pointerleave:1},t="undefined"!=typeof SVGElementInstance,u={pointermap:new p,eventMap:Object.create(null),captureInfo:Object.create(null),eventSources:Object.create(null),eventSourceList:[],registerSource:function(a,b){var c=b,d=c.events;d&&(d.forEach(function(a){c[a]&&(this.eventMap[a]=c[a].bind(c))},this),this.eventSources[a]=c,this.eventSourceList.push(c))},register:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.register.call(b,a)},unregister:function(a){for(var b,c=this.eventSourceList.length,d=0;d<c&&(b=this.eventSourceList[d]);d++)
b.unregister.call(b,a)},contains:function(a,b){try{return a.contains(b)}catch(c){return!1}},down:function(a){a.bubbles=!0,this.fireEvent("pointerdown",a)},move:function(a){a.bubbles=!0,this.fireEvent("pointermove",a)},up:function(a){a.bubbles=!0,this.fireEvent("pointerup",a)},enter:function(a){a.bubbles=!1,this.fireEvent("pointerenter",a)},leave:function(a){a.bubbles=!1,this.fireEvent("pointerleave",a)},over:function(a){a.bubbles=!0,this.fireEvent("pointerover",a)},out:function(a){a.bubbles=!0,this.fireEvent("pointerout",a)},cancel:function(a){a.bubbles=!0,this.fireEvent("pointercancel",a)},leaveOut:function(a){this.out(a),this.propagate(a,this.leave,!1)},enterOver:function(a){this.over(a),this.propagate(a,this.enter,!0)},eventHandler:function(a){if(!a._handledByPE){var b=a.type,c=this.eventMap&&this.eventMap[b];c&&c(a),a._handledByPE=!0}},listen:function(a,b){b.forEach(function(b){this.addEvent(a,b)},this)},unlisten:function(a,b){b.forEach(function(b){this.removeEvent(a,b)},this)},addEvent:function(a,b){a.addEventListener(b,this.boundHandler)},removeEvent:function(a,b){a.removeEventListener(b,this.boundHandler)},makeEvent:function(b,c){this.captureInfo[c.pointerId]&&(c.relatedTarget=null);var d=new a(b,c);return c.preventDefault&&(d.preventDefault=c.preventDefault),d._target=d._target||c.target,d},fireEvent:function(a,b){var c=this.makeEvent(a,b);return this.dispatchEvent(c)},cloneEvent:function(a){for(var b,c=Object.create(null),d=0;d<q.length;d++)b=q[d],c[b]=a[b]||r[d],!t||"target"!==b&&"relatedTarget"!==b||c[b]instanceof SVGElementInstance&&(c[b]=c[b].correspondingUseElement);return a.preventDefault&&(c.preventDefault=function(){a.preventDefault()}),c},getTarget:function(a){var b=this.captureInfo[a.pointerId];return b?a._target!==b&&a.type in s?void 0:b:a._target},propagate:function(a,b,c){for(var d=a.target,e=[];d!==document&&!d.contains(a.relatedTarget);) if(e.push(d),d=d.parentNode,!d)return;c&&e.reverse(),e.forEach(function(c){a.target=c,b.call(this,a)},this)},setCapture:function(b,c,d){this.captureInfo[b]&&this.releaseCapture(b,d),this.captureInfo[b]=c,this.implicitRelease=this.releaseCapture.bind(this,b,d),document.addEventListener("pointerup",this.implicitRelease),document.addEventListener("pointercancel",this.implicitRelease);var e=new a("gotpointercapture");e.pointerId=b,e._target=c,d||this.asyncDispatchEvent(e)},releaseCapture:function(b,c){var d=this.captureInfo[b];if(d){this.captureInfo[b]=void 0,document.removeEventListener("pointerup",this.implicitRelease),document.removeEventListener("pointercancel",this.implicitRelease);var e=new a("lostpointercapture");e.pointerId=b,e._target=d,c||this.asyncDispatchEvent(e)}},dispatchEvent:/*scope.external.dispatchEvent || */function(a){var b=this.getTarget(a);if(b)return b.dispatchEvent(a)},asyncDispatchEvent:function(a){requestAnimationFrame(this.dispatchEvent.bind(this,a))}};u.boundHandler=u.eventHandler.bind(u);var v={shadow:function(a){if(a)return a.shadowRoot||a.webkitShadowRoot},canTarget:function(a){return a&&Boolean(a.elementFromPoint)},targetingShadow:function(a){var b=this.shadow(a);if(this.canTarget(b))return b},olderShadow:function(a){var b=a.olderShadowRoot;if(!b){var c=a.querySelector("shadow");c&&(b=c.olderShadowRoot)}return b},allShadows:function(a){for(var b=[],c=this.shadow(a);c;)b.push(c),c=this.olderShadow(c);return b},searchRoot:function(a,b,c){if(a){var d,e,f=a.elementFromPoint(b,c);for(e=this.targetingShadow(f);e;){if(d=e.elementFromPoint(b,c)){var g=this.targetingShadow(d);return this.searchRoot(g,b,c)||d} e=this.olderShadow(e)} return f}},owner:function(a){
for(var b=a;b.parentNode;)b=b.parentNode;
return b.nodeType!==Node.DOCUMENT_NODE&&b.nodeType!==Node.DOCUMENT_FRAGMENT_NODE&&(b=document),b},findTarget:function(a){var b=a.clientX,c=a.clientY,d=this.owner(a.target);
return d.elementFromPoint(b,c)||(d=document),this.searchRoot(d,b,c)}},w=Array.prototype.forEach.call.bind(Array.prototype.forEach),x=Array.prototype.map.call.bind(Array.prototype.map),y=Array.prototype.slice.call.bind(Array.prototype.slice),z=Array.prototype.filter.call.bind(Array.prototype.filter),A=window.MutationObserver||window.WebKitMutationObserver,B="[touch-action]",C={subtree:!0,childList:!0,attributes:!0,attributeOldValue:!0,attributeFilter:["touch-action"]};c.prototype={watchSubtree:function(a){
//
this.observer&&v.canTarget(a)&&this.observer.observe(a,C)},enableOnSubtree:function(a){this.watchSubtree(a),a===document&&"complete"!==document.readyState?this.installOnLoad():this.installNewSubtree(a)},installNewSubtree:function(a){w(this.findElements(a),this.addElement,this)},findElements:function(a){return a.querySelectorAll?a.querySelectorAll(B):[]},removeElement:function(a){this.removeCallback(a)},addElement:function(a){this.addCallback(a)},elementChanged:function(a,b){this.changedCallback(a,b)},concatLists:function(a,b){return a.concat(y(b))},
installOnLoad:function(){document.addEventListener("readystatechange",function(){"complete"===document.readyState&&this.installNewSubtree(document)}.bind(this))},isElement:function(a){return a.nodeType===Node.ELEMENT_NODE},flattenMutationTree:function(a){
var b=x(a,this.findElements,this);
return b.push(z(a,this.isElement)),b.reduce(this.concatLists,[])},mutationWatcher:function(a){a.forEach(this.mutationHandler,this)},mutationHandler:function(a){if("childList"===a.type){var b=this.flattenMutationTree(a.addedNodes);b.forEach(this.addElement,this);var c=this.flattenMutationTree(a.removedNodes);c.forEach(this.removeElement,this)}else"attributes"===a.type&&this.elementChanged(a.target,a.oldValue)}};var D=["none","auto","pan-x","pan-y",{rule:"pan-x pan-y",selectors:["pan-x pan-y","pan-y pan-x"]}],E="",F=window.PointerEvent||window.MSPointerEvent,G=!window.ShadowDOMPolyfill&&document.head.createShadowRoot,H=u.pointermap,I=25,J=[1,4,2,8,16],K=!1;try{K=1===new MouseEvent("test",{buttons:1}).buttons}catch(L){}
var M,N={POINTER_ID:1,POINTER_TYPE:"mouse",events:["mousedown","mousemove","mouseup","mouseover","mouseout"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},lastTouches:[],
isEventSimulatedFromTouch:function(a){for(var b,c=this.lastTouches,d=a.clientX,e=a.clientY,f=0,g=c.length;f<g&&(b=c[f]);f++){
var h=Math.abs(d-b.x),i=Math.abs(e-b.y);if(h<=I&&i<=I)return!0}},prepareEvent:function(a){var b=u.cloneEvent(a),c=b.preventDefault;return b.preventDefault=function(){a.preventDefault(),c()},b.pointerId=this.POINTER_ID,b.isPrimary=!0,b.pointerType=this.POINTER_TYPE,b},prepareButtonsForMove:function(a,b){var c=H.get(this.POINTER_ID);
0!==b.which&&c?a.buttons=c.buttons:a.buttons=0,b.buttons=a.buttons},mousedown:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);K||(c.buttons=J[c.button],b&&(c.buttons|=b.buttons),a.buttons=c.buttons),H.set(this.POINTER_ID,a),b&&0!==b.buttons?u.move(c):u.down(c)}},mousemove:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.move(b)}},mouseup:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=H.get(this.POINTER_ID),c=this.prepareEvent(a);if(!K){var d=J[c.button];
c.buttons=b?b.buttons&~d:0,a.buttons=c.buttons}H.set(this.POINTER_ID,a),
c.buttons&=~J[c.button],0===c.buttons?u.up(c):u.move(c)}},mouseover:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,H.set(this.POINTER_ID,a),u.enterOver(b)}},mouseout:function(a){if(!this.isEventSimulatedFromTouch(a)){var b=this.prepareEvent(a);K||this.prepareButtonsForMove(b,a),b.button=-1,u.leaveOut(b)}},cancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.deactivateMouse()},deactivateMouse:function(){H["delete"](this.POINTER_ID)}},O=u.captureInfo,P=v.findTarget.bind(v),Q=v.allShadows.bind(v),R=u.pointermap,S=2500,T=200,U="touch-action",V={events:["touchstart","touchmove","touchend","touchcancel"],register:function(a){M.enableOnSubtree(a)},unregister:function(){},elementAdded:function(a){var b=a.getAttribute(U),c=this.touchActionToScrollType(b);c&&(a._scrollType=c,u.listen(a,this.events),
Q(a).forEach(function(a){a._scrollType=c,u.listen(a,this.events)},this))},elementRemoved:function(a){a._scrollType=void 0,u.unlisten(a,this.events),
Q(a).forEach(function(a){a._scrollType=void 0,u.unlisten(a,this.events)},this)},elementChanged:function(a,b){var c=a.getAttribute(U),d=this.touchActionToScrollType(c),e=this.touchActionToScrollType(b);
d&&e?(a._scrollType=d,Q(a).forEach(function(a){a._scrollType=d},this)):e?this.elementRemoved(a):d&&this.elementAdded(a)},scrollTypes:{EMITTER:"none",XSCROLLER:"pan-x",YSCROLLER:"pan-y",SCROLLER:/^(?:pan-x pan-y)|(?:pan-y pan-x)|auto$/},touchActionToScrollType:function(a){var b=a,c=this.scrollTypes;return"none"===b?"none":b===c.XSCROLLER?"X":b===c.YSCROLLER?"Y":c.SCROLLER.exec(b)?"XY":void 0},POINTER_TYPE:"touch",firstTouch:null,isPrimaryTouch:function(a){return this.firstTouch===a.identifier},setPrimaryTouch:function(a){
(0===R.size||1===R.size&&R.has(1))&&(this.firstTouch=a.identifier,this.firstXY={X:a.clientX,Y:a.clientY},this.scrolling=!1,this.cancelResetClickCount())},removePrimaryPointer:function(a){a.isPrimary&&(this.firstTouch=null,this.firstXY=null,this.resetClickCount())},clickCount:0,resetId:null,resetClickCount:function(){var a=function(){this.clickCount=0,this.resetId=null}.bind(this);this.resetId=setTimeout(a,T)},cancelResetClickCount:function(){this.resetId&&clearTimeout(this.resetId)},typeToButtons:function(a){var b=0;return"touchstart"!==a&&"touchmove"!==a||(b=1),b},touchToPointer:function(a){var b=this.currentTouchEvent,c=u.cloneEvent(a),d=c.pointerId=a.identifier+2;c.target=O[d]||P(c),c.bubbles=!0,c.cancelable=!0,c.detail=this.clickCount,c.button=0,c.buttons=this.typeToButtons(b.type),c.width=2*(a.radiusX||a.webkitRadiusX||0),c.height=2*(a.radiusY||a.webkitRadiusY||0),c.pressure=a.force||a.webkitForce||.5,c.isPrimary=this.isPrimaryTouch(a),c.pointerType=this.POINTER_TYPE,
c.altKey=b.altKey,c.ctrlKey=b.ctrlKey,c.metaKey=b.metaKey,c.shiftKey=b.shiftKey;
var e=this;return c.preventDefault=function(){e.scrolling=!1,e.firstXY=null,b.preventDefault()},c},processTouches:function(a,b){var c=a.changedTouches;this.currentTouchEvent=a;for(var d,e=0;e<c.length;e++)d=c[e],b.call(this,this.touchToPointer(d))},
shouldScroll:function(a){if(this.firstXY){var b,c=a.currentTarget._scrollType;if("none"===c)
b=!1;else if("XY"===c)
b=!0;else{var d=a.changedTouches[0],e=c,f="Y"===c?"X":"Y",g=Math.abs(d["client"+e]-this.firstXY[e]),h=Math.abs(d["client"+f]-this.firstXY[f]);
b=g>=h}return this.firstXY=null,b}},findTouch:function(a,b){for(var c,d=0,e=a.length;d<e&&(c=a[d]);d++)if(c.identifier===b)return!0},
vacuumTouches:function(a){var b=a.touches;
if(R.size>=b.length){var c=[];R.forEach(function(a,d){
if(1!==d&&!this.findTouch(b,d-2)){var e=a.out;c.push(e)}},this),c.forEach(this.cancelOut,this)}},touchstart:function(a){this.vacuumTouches(a),this.setPrimaryTouch(a.changedTouches[0]),this.dedupSynthMouse(a),this.scrolling||(this.clickCount++,this.processTouches(a,this.overDown))},overDown:function(a){R.set(a.pointerId,{target:a.target,out:a,outTarget:a.target}),u.enterOver(a),u.down(a)},touchmove:function(a){this.scrolling||(this.shouldScroll(a)?(this.scrolling=!0,this.touchcancel(a)):(a.preventDefault(),this.processTouches(a,this.moveOverOut)))},moveOverOut:function(a){var b=a,c=R.get(b.pointerId);
if(c){var d=c.out,e=c.outTarget;u.move(b),d&&e!==b.target&&(d.relatedTarget=b.target,b.relatedTarget=e,
d.target=e,b.target?(u.leaveOut(d),u.enterOver(b)):(
b.target=e,b.relatedTarget=null,this.cancelOut(b))),c.out=b,c.outTarget=b.target}},touchend:function(a){this.dedupSynthMouse(a),this.processTouches(a,this.upOut)},upOut:function(a){this.scrolling||(u.up(a),u.leaveOut(a)),this.cleanUpPointer(a)},touchcancel:function(a){this.processTouches(a,this.cancelOut)},cancelOut:function(a){u.cancel(a),u.leaveOut(a),this.cleanUpPointer(a)},cleanUpPointer:function(a){R["delete"](a.pointerId),this.removePrimaryPointer(a)},
dedupSynthMouse:function(a){var b=N.lastTouches,c=a.changedTouches[0];
if(this.isPrimaryTouch(c)){
var d={x:c.clientX,y:c.clientY};b.push(d);var e=function(a,b){var c=a.indexOf(b);c>-1&&a.splice(c,1)}.bind(null,b,d);setTimeout(e,S)}}};M=new c(V.elementAdded,V.elementRemoved,V.elementChanged,V);var W,X,Y,Z=u.pointermap,$=window.MSPointerEvent&&"number"==typeof window.MSPointerEvent.MSPOINTER_TYPE_MOUSE,_={events:["MSPointerDown","MSPointerMove","MSPointerUp","MSPointerOut","MSPointerOver","MSPointerCancel","MSGotPointerCapture","MSLostPointerCapture"],register:function(a){u.listen(a,this.events)},unregister:function(a){u.unlisten(a,this.events)},POINTER_TYPES:["","unavailable","touch","pen","mouse"],prepareEvent:function(a){var b=a;return $&&(b=u.cloneEvent(a),b.pointerType=this.POINTER_TYPES[a.pointerType]),b},cleanup:function(a){Z["delete"](a)},MSPointerDown:function(a){Z.set(a.pointerId,a);var b=this.prepareEvent(a);u.down(b)},MSPointerMove:function(a){var b=this.prepareEvent(a);u.move(b)},MSPointerUp:function(a){var b=this.prepareEvent(a);u.up(b),this.cleanup(a.pointerId)},MSPointerOut:function(a){var b=this.prepareEvent(a);u.leaveOut(b)},MSPointerOver:function(a){var b=this.prepareEvent(a);u.enterOver(b)},MSPointerCancel:function(a){var b=this.prepareEvent(a);u.cancel(b),this.cleanup(a.pointerId)},MSLostPointerCapture:function(a){var b=u.makeEvent("lostpointercapture",a);u.dispatchEvent(b)},MSGotPointerCapture:function(a){var b=u.makeEvent("gotpointercapture",a);u.dispatchEvent(b)}},aa=window.navigator;aa.msPointerEnabled?(W=function(a){i(a),j(this),k(a)&&(u.setCapture(a,this,!0),this.msSetPointerCapture(a))},X=function(a){i(a),u.releaseCapture(a,!0),this.msReleasePointerCapture(a)}):(W=function(a){i(a),j(this),k(a)&&u.setCapture(a,this)},X=function(a){i(a),u.releaseCapture(a)}),Y=function(a){return!!u.captureInfo[a]},g(),h(),l();var ba={dispatcher:u,Installer:c,PointerEvent:a,PointerMap:p,targetFinding:v};return ba});

///////////////////////////////////////////////

///////////////////////////////////////////////
var config = {"dark_mode": true, "show_pads": true, "show_fabrication": true, "show_silkscreen": true, "highlight_pin1": "none", "redraw_on_drag": true, "board_rotation": 0, "checkboxes": "Sourced,Placed", "bom_view": "left-right", "layer_view": "FB", "offset_back_rotation": false, "kicad_text_formatting": true, "fields": ["Value", "Footprint"]}
///////////////////////////////////////////////

///////////////////////////////////////////////
var pcbdata = JSON.parse(LZString.decompressFromBase64("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7J7u726e60TvxLU3a91sJuy3aj1syFIlUjYEQe5Hb1SFR2/M7abooOpCx77s5xYI7sHr2O746TrtE6D1MWDuIe2o7jHutAf67yHpaOu47hHpfumh7arrEex26H9q42njbpDodOlh65rsse2+46fgAWoh6LuBIe/27LjqNu+7bQTsEelx69Dqwuuh7xHpHu946zDsAerG6t1rAe2e6IQCFmlR7oHqJuth7A6FEycm6N7un2jra59rQezY771pLm6k7djuTu0+6L7vB0bXJRTWqOnh77HrFW9a6QDoW2247GgHuOxJ7PHr/uhh6y1v8eg7bAnsKe11RFNq4e1qA2nrQux+7I9puOsE7enohO/p6HbsGeuA6+jsQOvXbkDuAesY7QHpnu9E6atvnuolal7tge3ktj5u0ere76Vt3um9bTZoPu3h6xirqe/Y6q1vduqNafEIIs0J7AVtvuvZb7nv/Wga7ZVuvOkO7bzrDuj+6+7suAL57/gF/uuO75TpGeie6Rjp2elE69nsUe5ebEbqxO4m6cVHNrfE6Edvt2zsJHdvMBHrb0TQfm2y4qDt6QFfbmbrX28x7WHqa2/jY5iWyFISR6irjW8nhBYWJeyNxuDuqu1naPHtWeqF71nqHmj46YXtrur/bLHt9hEZYJWyNwaksGXo5OuLb/bpJetu6MrpEejl6q7thOkw7n9qFmxDaAAGJZrpTu+Q7WwHmYNzl/yQuuhFbGXss2n56hcDmegG65XpGum06uXteO7bapZqFmpO6nnqsun46QsnTgDIFmgLFe5Q7DXsleg27pXtZeoW72Xote9y7crute8WapZsQ261aNXoae+Q7l/hoyacSs5EIe8U7wnrIsZl7TXtuulZ6FXrbOkw7rVsQ2opaI3veuql6e0rURXV7TSH1e2xbE3sz5bGaTXples163HtEezl6g3q22kN6ilvDe126BXo+u4N07mE0iNRtRXpYOst7VrvqOn16yHrZexXb5Xste+t6TDpVenN6W3sdeyx7JugVKFtkq9muerJbe3uTeqt7U3okupJ6vHu5emObrVtjm3N6DjrbeyOtM60XeiZhYtpXe316hrv9emO76rtLW+16LHrbetEEq1k3BX5hvbo9eiV6+3s5xAd7ontlemt6R3sDezbaa7uiuyN6fjp7S1tBV93WbFg7PXvfe8gBP3puuod7DgF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"))
///////////////////////////////////////////////

///////////////////////////////////////////////
/* Utility functions */

var storagePrefix = 'KiCad_HTML_BOM__' + pcbdata.metadata.title + '__' +
  pcbdata.metadata.revision + '__#';
var storage;

function initStorage(key) {
  try {
    window.localStorage.getItem("blank");
    storage = window.localStorage;
  } catch (e) {
    // localStorage not available
  }
  if (!storage) {
    try {
      window.sessionStorage.getItem("blank");
      storage = window.sessionStorage;
    } catch (e) {
      // sessionStorage also not available
    }
  }
}

function readStorage(key) {
  if (storage) {
    return storage.getItem(storagePrefix + key);
  } else {
    return null;
  }
}

function writeStorage(key, value) {
  if (storage) {
    storage.setItem(storagePrefix + key, value);
  }
}

function fancyDblClickHandler(el, onsingle, ondouble) {
  return function () {
    if (el.getAttribute("data-dblclick") == null) {
      el.setAttribute("data-dblclick", 1);
      setTimeout(function () {
        if (el.getAttribute("data-dblclick") == 1) {
          onsingle();
        }
        el.removeAttribute("data-dblclick");
      }, 200);
    } else {
      el.removeAttribute("data-dblclick");
      ondouble();
    }
  }
}

function smoothScrollToRow(rowid) {
  document.getElementById(rowid).scrollIntoView({
    behavior: "smooth",
    block: "center",
    inline: "nearest"
  });
}

function focusInputField(input) {
  input.scrollIntoView(false);
  input.focus();
  input.select();
}

function saveBomTable(output) {
  var text = '';
  for (var node of bomhead.childNodes[0].childNodes) {
    if (node.firstChild) {
      text += (output == 'csv' ? `"${node.firstChild.nodeValue}"` : node.firstChild.nodeValue);
    }
    if (node != bomhead.childNodes[0].lastChild) {
      text += (output == 'csv' ? ',' : '\t');
    }
  }
  text += '\n';
  for (var row of bombody.childNodes) {
    for (var cell of row.childNodes) {
      let val = '';
      for (var node of cell.childNodes) {
        if (node.nodeName == "INPUT") {
          if (node.checked) {
            val += '✓';
          }
        } else if ((node.nodeName == "MARK") || (node.nodeName == "A")) {
          val += node.firstChild.nodeValue;
        } else {
          val += node.nodeValue;
        }
      }
      if (output == 'csv') {
        val = val.replace(/\"/g, '\"\"'); // pair of double-quote characters
        if (isNumeric(val)) {
          val = +val;                     // use number
        } else {
          val = `"${val}"`;               // enclosed within double-quote
        }
      }
      text += val;
      if (cell != row.lastChild) {
        text += (output == 'csv' ? ',' : '\t');
      }
    }
    text += '\n';
  }

  if (output != 'clipboard') {
    // To file: csv or txt
    var blob = new Blob([text], {
      type: `text/${output}`
    });
    saveFile(`${pcbdata.metadata.title}.${output}`, blob);
  } else {
    // To clipboard
    var textArea = document.createElement("textarea");
    textArea.classList.add('clipboard-temp');
    textArea.value = text;

    document.body.appendChild(textArea);
    textArea.focus();
    textArea.select();

    try {
      if (document.execCommand('copy')) {
        console.log('Bom copied to clipboard.');
      }
    } catch (err) {
      console.log('Can not copy to clipboard.');
    }

    document.body.removeChild(textArea);
  }
}

function isNumeric(str) {
  /* https://stackoverflow.com/a/175787 */
  return (typeof str != "string" ? false : !isNaN(str) && !isNaN(parseFloat(str)));
}

function removeGutterNode(node) {
  for (var i = 0; i < node.childNodes.length; i++) {
    if (node.childNodes[i].classList &&
      node.childNodes[i].classList.contains("gutter")) {
      node.removeChild(node.childNodes[i]);
      break;
    }
  }
}

function cleanGutters() {
  removeGutterNode(document.getElementById("bot"));
  removeGutterNode(document.getElementById("canvasdiv"));
}

var units = {
  prefixes: {
    giga: ["G", "g", "giga", "Giga", "GIGA"],
    mega: ["M", "mega", "Mega", "MEGA"],
    kilo: ["K", "k", "kilo", "Kilo", "KILO"],
    milli: ["m", "milli", "Milli", "MILLI"],
    micro: ["U", "u", "micro", "Micro", "MICRO", "μ", "µ"], // different utf8 μ
    nano: ["N", "n", "nano", "Nano", "NANO"],
    pico: ["P", "p", "pico", "Pico", "PICO"],
  },
  unitsShort: ["R", "r", "Ω", "F", "f", "H", "h"],
  unitsLong: [
    "OHM", "Ohm", "ohm", "ohms",
    "FARAD", "Farad", "farad",
    "HENRY", "Henry", "henry"
  ],
  getMultiplier: function (s) {
    if (this.prefixes.giga.includes(s)) return 1e9;
    if (this.prefixes.mega.includes(s)) return 1e6;
    if (this.prefixes.kilo.includes(s)) return 1e3;
    if (this.prefixes.milli.includes(s)) return 1e-3;
    if (this.prefixes.micro.includes(s)) return 1e-6;
    if (this.prefixes.nano.includes(s)) return 1e-9;
    if (this.prefixes.pico.includes(s)) return 1e-12;
    return 1;
  },
  valueRegex: null,
}

function initUtils() {
  var allPrefixes = units.prefixes.giga
    .concat(units.prefixes.mega)
    .concat(units.prefixes.kilo)
    .concat(units.prefixes.milli)
    .concat(units.prefixes.micro)
    .concat(units.prefixes.nano)
    .concat(units.prefixes.pico);
  var allUnits = units.unitsShort.concat(units.unitsLong);
  units.valueRegex = new RegExp("^([0-9\.]+)" +
    "\\s*(" + allPrefixes.join("|") + ")?" +
    "(" + allUnits.join("|") + ")?" +
    "(\\b.*)?$", "");
  units.valueAltRegex = new RegExp("^([0-9]*)" +
    "(" + units.unitsShort.join("|") + ")?" +
    "([GgMmKkUuNnPp])?" +
    "([0-9]*)" +
    "(\\b.*)?$", "");
  if (config.fields.includes("Value")) {
    var index = config.fields.indexOf("Value");
    pcbdata.bom["parsedValues"] = {};
    for (var id in pcbdata.bom.fields) {
      pcbdata.bom.parsedValues[id] = parseValue(pcbdata.bom.fields[id][index])
    }
  }
}

function parseValue(val, ref) {
  var inferUnit = (unit, ref) => {
    if (unit) {
      unit = unit.toLowerCase();
      if (unit == 'Ω' || unit == "ohm" || unit == "ohms") {
        unit = 'r';
      }
      unit = unit[0];
    } else {
      ref = /^([a-z]+)\d+$/i.exec(ref);
      if (ref) {
        ref = ref[1].toLowerCase();
        if (ref == "c") unit = 'f';
        else if (ref == "l") unit = 'h';
        else if (ref == "r" || ref == "rv") unit = 'r';
        else unit = null;
      }
    }
    return unit;
  };
  val = val.replace(/,/g, "");
  var match = units.valueRegex.exec(val);
  var unit;
  if (match) {
    val = parseFloat(match[1]);
    if (match[2]) {
      val = val * units.getMultiplier(match[2]);
    }
    unit = inferUnit(match[3], ref);
    if (!unit) return null;
    else return {
      val: val,
      unit: unit,
      extra: match[4],
    }
  }
  match = units.valueAltRegex.exec(val);
  if (match && (match[1] || match[4])) {
    val = parseFloat(match[1] + "." + match[4]);
    if (match[3]) {
      val = val * units.getMultiplier(match[3]);
    }
    unit = inferUnit(match[2], ref);
    if (!unit) return null;
    else return {
      val: val,
      unit: unit,
      extra: match[5],
    }
  }
  return null;
}

function valueCompare(a, b, stra, strb) {
  if (a === null && b === null) {
    // Failed to parse both values, compare them as strings.
    if (stra != strb) return stra > strb ? 1 : -1;
    else return 0;
  } else if (a === null) {
    return 1;
  } else if (b === null) {
    return -1;
  } else {
    if (a.unit != b.unit) return a.unit > b.unit ? 1 : -1;
    else if (a.val != b.val) return a.val > b.val ? 1 : -1;
    else if (a.extra != b.extra) return a.extra > b.extra ? 1 : -1;
    else return 0;
  }
}

function validateSaveImgDimension(element) {
  var valid = false;
  var intValue = 0;
  if (/^[1-9]\d*$/.test(element.value)) {
    intValue = parseInt(element.value);
    if (intValue <= 16000) {
      valid = true;
    }
  }
  if (valid) {
    element.classList.remove("invalid");
  } else {
    element.classList.add("invalid");
  }
  return intValue;
}

function saveImage(layer) {
  var width = validateSaveImgDimension(document.getElementById("render-save-width"));
  var height = validateSaveImgDimension(document.getElementById("render-save-height"));
  var bgcolor = null;
  if (!document.getElementById("render-save-transparent").checked) {
    var style = getComputedStyle(topmostdiv);
    bgcolor = style.getPropertyValue("background-color");
  }
  if (!width || !height) return;

  // Prepare image
  var canvas = document.createElement("canvas");
  var layerdict = {
    transform: {
      x: 0,
      y: 0,
      s: 1,
      panx: 0,
      pany: 0,
      zoom: 1,
    },
    bg: canvas,
    fab: canvas,
    silk: canvas,
    highlight: canvas,
    layer: layer,
  }
  // Do the rendering
  recalcLayerScale(layerdict, width, height);
  prepareLayer(layerdict);
  clearCanvas(canvas, bgcolor);
  drawBackground(layerdict, false);
  drawHighlightsOnLayer(layerdict, false);

  // Save image
  var imgdata = canvas.toDataURL("image/png");

  var filename = pcbdata.metadata.title;
  if (pcbdata.metadata.revision) {
    filename += `.${pcbdata.metadata.revision}`;
  }
  filename += `.${layer}.png`;
  saveFile(filename, dataURLtoBlob(imgdata));
}

function saveSettings() {
  var data = {
    type: "InteractiveHtmlBom settings",
    version: 1,
    pcbmetadata: pcbdata.metadata,
    settings: settings,
  }
  var blob = new Blob([JSON.stringify(data, null, 4)], {
    type: "application/json"
  });
  saveFile(`${pcbdata.metadata.title}.settings.json`, blob);
}

function loadSettings() {
  var input = document.createElement("input");
  input.type = "file";
  input.accept = ".settings.json";
  input.onchange = function (e) {
    var file = e.target.files[0];
    var reader = new FileReader();
    reader.onload = readerEvent => {
      var content = readerEvent.target.result;
      var newSettings;
      try {
        newSettings = JSON.parse(content);
      } catch (e) {
        alert("Selected file is not InteractiveHtmlBom settings file.");
        return;
      }
      if (newSettings.type != "InteractiveHtmlBom settings") {
        alert("Selected file is not InteractiveHtmlBom settings file.");
        return;
      }
      var metadataMatches = newSettings.hasOwnProperty("pcbmetadata");
      if (metadataMatches) {
        for (var k in pcbdata.metadata) {
          if (!newSettings.pcbmetadata.hasOwnProperty(k) || newSettings.pcbmetadata[k] != pcbdata.metadata[k]) {
            metadataMatches = false;
          }
        }
      }
      if (!metadataMatches) {
        var currentMetadata = JSON.stringify(pcbdata.metadata, null, 4);
        var fileMetadata = JSON.stringify(newSettings.pcbmetadata, null, 4);
        if (!confirm(
          `Settins file metadata does not match current metadata.\n\n` +
          `Page metadata:\n${currentMetadata}\n\n` +
          `Settings file metadata:\n${fileMetadata}\n\n` +
          `Press OK if you would like to import settings anyway.`)) {
          return;
        }
      }
      overwriteSettings(newSettings.settings);
    }
    reader.readAsText(file, 'UTF-8');
  }
  input.click();
}

function resetSettings() {
  if (!confirm(
    `This will reset all checkbox states and other settings.\n\n` +
    `Press OK if you want to continue.`)) {
    return;
  }
  if (storage) {
    var keys = [];
    for (var i = 0; i < storage.length; i++) {
      var key = storage.key(i);
      if (key.startsWith(storagePrefix)) keys.push(key);
    }
    for (var key of keys) storage.removeItem(key);
  }
  location.reload();
}

function overwriteSettings(newSettings) {
  initDone = false;
  Object.assign(settings, newSettings);
  writeStorage("bomlayout", settings.bomlayout);
  writeStorage("bommode", settings.bommode);
  writeStorage("canvaslayout", settings.canvaslayout);
  writeStorage("bomCheckboxes", settings.checkboxes.join(","));
  document.getElementById("bomCheckboxes").value = settings.checkboxes.join(",");
  for (var checkbox of settings.checkboxes) {
    writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]);
  }
  writeStorage("markWhenChecked", settings.markWhenChecked);
  padsVisible(settings.renderPads);
  document.getElementById("padsCheckbox").checked = settings.renderPads;
  fabricationVisible(settings.renderFabrication);
  document.getElementById("fabricationCheckbox").checked = settings.renderFabrication;
  silkscreenVisible(settings.renderSilkscreen);
  document.getElementById("silkscreenCheckbox").checked = settings.renderSilkscreen;
  referencesVisible(settings.renderReferences);
  document.getElementById("referencesCheckbox").checked = settings.renderReferences;
  valuesVisible(settings.renderValues);
  document.getElementById("valuesCheckbox").checked = settings.renderValues;
  tracksVisible(settings.renderTracks);
  document.getElementById("tracksCheckbox").checked = settings.renderTracks;
  zonesVisible(settings.renderZones);
  document.getElementById("zonesCheckbox").checked = settings.renderZones;
  dnpOutline(settings.renderDnpOutline);
  document.getElementById("dnpOutlineCheckbox").checked = settings.renderDnpOutline;
  setRedrawOnDrag(settings.redrawOnDrag);
  document.getElementById("dragCheckbox").checked = settings.redrawOnDrag;
  setDarkMode(settings.darkMode);
  document.getElementById("darkmodeCheckbox").checked = settings.darkMode;
  setHighlightPin1(settings.highlightpin1);
  document.forms.highlightpin1.highlightpin1.value = settings.highlightpin1;
  writeStorage("boardRotation", settings.boardRotation);
  document.getElementById("boardRotation").value = settings.boardRotation / 5;
  document.getElementById("rotationDegree").textContent = settings.boardRotation;
  setOffsetBackRotation(settings.offsetBackRotation);
  document.getElementById("offsetBackRotationCheckbox").checked = settings.offsetBackRotation;
  initDone = true;
  prepCheckboxes();
  changeBomLayout(settings.bomlayout);
}

function saveFile(filename, blob) {
  var link = document.createElement("a");
  var objurl = URL.createObjectURL(blob);
  link.download = filename;
  link.href = objurl;
  link.click();
}

function dataURLtoBlob(dataurl) {
  var arr = dataurl.split(','),
    mime = arr[0].match(/:(.*?);/)[1],
    bstr = atob(arr[1]),
    n = bstr.length,
    u8arr = new Uint8Array(n);
  while (n--) {
    u8arr[n] = bstr.charCodeAt(n);
  }
  return new Blob([u8arr], {
    type: mime
  });
}

var settings = {
  canvaslayout: "FB",
  bomlayout: "left-right",
  bommode: "grouped",
  checkboxes: [],
  checkboxStoredRefs: {},
  darkMode: false,
  highlightpin1: "none",
  redrawOnDrag: true,
  boardRotation: 0,
  offsetBackRotation: false,
  renderPads: true,
  renderReferences: true,
  renderValues: true,
  renderSilkscreen: true,
  renderFabrication: true,
  renderDnpOutline: false,
  renderTracks: true,
  renderZones: true,
  columnOrder: [],
  hiddenColumns: [],
  netColors: {},
}

function initDefaults() {
  settings.bomlayout = readStorage("bomlayout");
  if (settings.bomlayout === null) {
    settings.bomlayout = config.bom_view;
  }
  if (!['bom-only', 'left-right', 'top-bottom'].includes(settings.bomlayout)) {
    settings.bomlayout = config.bom_view;
  }
  settings.bommode = readStorage("bommode");
  if (settings.bommode === null) {
    settings.bommode = "grouped";
  }
  if (settings.bommode == "netlist" && !pcbdata.nets) {
    settings.bommode = "grouped";
  }
  if (!["grouped", "ungrouped", "netlist"].includes(settings.bommode)) {
    settings.bommode = "grouped";
  }
  settings.canvaslayout = readStorage("canvaslayout");
  if (settings.canvaslayout === null) {
    settings.canvaslayout = config.layer_view;
  }
  var bomCheckboxes = readStorage("bomCheckboxes");
  if (bomCheckboxes === null) {
    bomCheckboxes = config.checkboxes;
  }
  settings.checkboxes = bomCheckboxes.split(",").filter((e) => e);
  document.getElementById("bomCheckboxes").value = bomCheckboxes;

  var highlightpin1 = readStorage("highlightpin1") || config.highlight_pin1;
  if (highlightpin1 === "false") highlightpin1 = "none";
  if (highlightpin1 === "true") highlightpin1 = "all";
  setHighlightPin1(highlightpin1);
  document.forms.highlightpin1.highlightpin1.value = highlightpin1;

  settings.markWhenChecked = readStorage("markWhenChecked") || "";
  populateMarkWhenCheckedOptions();

  function initBooleanSetting(storageString, def, elementId, func) {
    var b = readStorage(storageString);
    if (b === null) {
      b = def;
    } else {
      b = (b == "true");
    }
    document.getElementById(elementId).checked = b;
    func(b);
  }

  initBooleanSetting("padsVisible", config.show_pads, "padsCheckbox", padsVisible);
  initBooleanSetting("fabricationVisible", config.show_fabrication, "fabricationCheckbox", fabricationVisible);
  initBooleanSetting("silkscreenVisible", config.show_silkscreen, "silkscreenCheckbox", silkscreenVisible);
  initBooleanSetting("referencesVisible", true, "referencesCheckbox", referencesVisible);
  initBooleanSetting("valuesVisible", true, "valuesCheckbox", valuesVisible);
  if ("tracks" in pcbdata) {
    initBooleanSetting("tracksVisible", true, "tracksCheckbox", tracksVisible);
    initBooleanSetting("zonesVisible", true, "zonesCheckbox", zonesVisible);
  } else {
    document.getElementById("tracksAndZonesCheckboxes").style.display = "none";
    tracksVisible(false);
    zonesVisible(false);
  }
  initBooleanSetting("dnpOutline", false, "dnpOutlineCheckbox", dnpOutline);
  initBooleanSetting("redrawOnDrag", config.redraw_on_drag, "dragCheckbox", setRedrawOnDrag);
  initBooleanSetting("darkmode", config.dark_mode, "darkmodeCheckbox", setDarkMode);

  var fields = ["checkboxes", "References"].concat(config.fields).concat(["Quantity"]);
  var hcols = JSON.parse(readStorage("hiddenColumns"));
  if (hcols === null) {
    hcols = [];
  }
  settings.hiddenColumns = hcols.filter(e => fields.includes(e));

  var cord = JSON.parse(readStorage("columnOrder"));
  if (cord === null) {
    cord = fields;
  } else {
    cord = cord.filter(e => fields.includes(e));
    if (cord.length != fields.length)
      cord = fields;
  }
  settings.columnOrder = cord;

  settings.boardRotation = readStorage("boardRotation");
  if (settings.boardRotation === null) {
    settings.boardRotation = config.board_rotation * 5;
  } else {
    settings.boardRotation = parseInt(settings.boardRotation);
  }
  document.getElementById("boardRotation").value = settings.boardRotation / 5;
  document.getElementById("rotationDegree").textContent = settings.boardRotation;
  initBooleanSetting("offsetBackRotation", config.offset_back_rotation, "offsetBackRotationCheckbox", setOffsetBackRotation);

  settings.netColors = JSON.parse(readStorage("netColors")) || {};
}

// Helper classes for user js callbacks.

const IBOM_EVENT_TYPES = {
  ALL: "all",
  HIGHLIGHT_EVENT: "highlightEvent",
  CHECKBOX_CHANGE_EVENT: "checkboxChangeEvent",
  BOM_BODY_CHANGE_EVENT: "bomBodyChangeEvent",
}

const EventHandler = {
  callbacks: {},
  init: function () {
    for (eventType of Object.values(IBOM_EVENT_TYPES))
      this.callbacks[eventType] = [];
  },
  registerCallback: function (eventType, callback) {
    this.callbacks[eventType].push(callback);
  },
  emitEvent: function (eventType, eventArgs) {
    event = {
      eventType: eventType,
      args: eventArgs,
    }
    var callback;
    for (callback of this.callbacks[eventType])
      callback(event);
    for (callback of this.callbacks[IBOM_EVENT_TYPES.ALL])
      callback(event);
  }
}
EventHandler.init();

///////////////////////////////////////////////

///////////////////////////////////////////////
/* PCB rendering code */

var emptyContext2d = document.createElement("canvas").getContext("2d");

function deg2rad(deg) {
  return deg * Math.PI / 180;
}

function calcFontPoint(linepoint, text, offsetx, offsety, tilt) {
  var point = [
    linepoint[0] * text.width + offsetx,
    linepoint[1] * text.height + offsety
  ];
  // This approximates pcbnew behavior with how text tilts depending on horizontal justification
  point[0] -= (linepoint[1] + 0.5 * (1 + text.justify[0])) * text.height * tilt;
  return point;
}

function drawText(ctx, text, color) {
  if ("ref" in text && !settings.renderReferences) return;
  if ("val" in text && !settings.renderValues) return;
  ctx.save();
  ctx.fillStyle = color;
  ctx.strokeStyle = color;
  ctx.lineCap = "round";
  ctx.lineJoin = "round";
  ctx.lineWidth = text.thickness;
  if ("svgpath" in text) {
    ctx.stroke(new Path2D(text.svgpath));
    ctx.restore();
    return;
  }
  if ("polygons" in text) {
    ctx.fill(getPolygonsPath(text));
    ctx.restore();
    return;
  }
  ctx.translate(...text.pos);
  ctx.translate(text.thickness * 0.5, 0);
  var angle = -text.angle;
  if (text.attr.includes("mirrored")) {
    ctx.scale(-1, 1);
    angle = -angle;
  }
  var tilt = 0;
  if (text.attr.includes("italic")) {
    tilt = 0.125;
  }
  var interline = text.height * 1.5 + text.thickness;
  var txt = text.text.split("\n");
  // KiCad ignores last empty line.
  if (txt[txt.length - 1] == '') txt.pop();
  ctx.rotate(deg2rad(angle));
  var offsety = (1 - text.justify[1]) / 2 * text.height; // One line offset
  offsety -= (txt.length - 1) * (text.justify[1] + 1) / 2 * interline; // Multiline offset
  for (var i in txt) {
    var lineWidth = text.thickness + interline / 2 * tilt;
    for (var j = 0; j < txt[i].length; j++) {
      if (txt[i][j] == '\t') {
        var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
        lineWidth += fourSpaces - lineWidth % fourSpaces;
      } else {
        if (txt[i][j] == '~') {
          j++;
          if (j == txt[i].length)
            break;
        }
        lineWidth += pcbdata.font_data[txt[i][j]].w * text.width;
      }
    }
    var offsetx = -lineWidth * (text.justify[0] + 1) / 2;
    var inOverbar = false;
    for (var j = 0; j < txt[i].length; j++) {
      if (config.kicad_text_formatting) {
        if (txt[i][j] == '\t') {
          var fourSpaces = 4 * pcbdata.font_data[' '].w * text.width;
          offsetx += fourSpaces - offsetx % fourSpaces;
          continue;
        } else if (txt[i][j] == '~') {
          j++;
          if (j == txt[i].length)
            break;
          if (txt[i][j] != '~') {
            inOverbar = !inOverbar;
          }
        }
      }
      var glyph = pcbdata.font_data[txt[i][j]];
      if (inOverbar) {
        var overbarStart = [offsetx, -text.height * 1.4 + offsety];
        var overbarEnd = [offsetx + text.width * glyph.w, overbarStart[1]];

        if (!lastHadOverbar) {
          overbarStart[0] += text.height * 1.4 * tilt;
          lastHadOverbar = true;
        }
        ctx.beginPath();
        ctx.moveTo(...overbarStart);
        ctx.lineTo(...overbarEnd);
        ctx.stroke();
      } else {
        lastHadOverbar = false;
      }
      for (var line of glyph.l) {
        ctx.beginPath();
        ctx.moveTo(...calcFontPoint(line[0], text, offsetx, offsety, tilt));
        for (var k = 1; k < line.length; k++) {
          ctx.lineTo(...calcFontPoint(line[k], text, offsetx, offsety, tilt));
        }
        ctx.stroke();
      }
      offsetx += glyph.w * text.width;
    }
    offsety += interline;
  }
  ctx.restore();
}

function drawedge(ctx, scalefactor, edge, color) {
  ctx.strokeStyle = color;
  ctx.fillStyle = color;
  ctx.lineWidth = Math.max(1 / scalefactor, edge.width);
  ctx.lineCap = "round";
  ctx.lineJoin = "round";
  if ("svgpath" in edge) {
    ctx.stroke(new Path2D(edge.svgpath));
  } else {
    ctx.beginPath();
    if (edge.type == "segment") {
      ctx.moveTo(...edge.start);
      ctx.lineTo(...edge.end);
    }
    if (edge.type == "rect") {
      ctx.moveTo(...edge.start);
      ctx.lineTo(edge.start[0], edge.end[1]);
      ctx.lineTo(...edge.end);
      ctx.lineTo(edge.end[0], edge.start[1]);
      ctx.lineTo(...edge.start);
    }
    if (edge.type == "arc") {
      ctx.arc(
        ...edge.start,
        edge.radius,
        deg2rad(edge.startangle),
        deg2rad(edge.endangle));
    }
    if (edge.type == "circle") {
      ctx.arc(
        ...edge.start,
        edge.radius,
        0, 2 * Math.PI);
      ctx.closePath();
    }
    if (edge.type == "curve") {
      ctx.moveTo(...edge.start);
      ctx.bezierCurveTo(...edge.cpa, ...edge.cpb, ...edge.end);
    }
    if("filled" in edge && edge.filled)
      ctx.fill();
    else
      ctx.stroke();
  }
}

function getChamferedRectPath(size, radius, chamfpos, chamfratio) {
  // chamfpos is a bitmask, left = 1, right = 2, bottom left = 4, bottom right = 8
  var path = new Path2D();
  var width = size[0];
  var height = size[1];
  var x = width * -0.5;
  var y = height * -0.5;
  var chamfOffset = Math.min(width, height) * chamfratio;
  path.moveTo(x, 0);
  if (chamfpos & 4) {
    path.lineTo(x, y + height - chamfOffset);
    path.lineTo(x + chamfOffset, y + height);
    path.lineTo(0, y + height);
  } else {
    path.arcTo(x, y + height, x + width, y + height, radius);
  }
  if (chamfpos & 8) {
    path.lineTo(x + width - chamfOffset, y + height);
    path.lineTo(x + width, y + height - chamfOffset);
    path.lineTo(x + width, 0);
  } else {
    path.arcTo(x + width, y + height, x + width, y, radius);
  }
  if (chamfpos & 2) {
    path.lineTo(x + width, y + chamfOffset);
    path.lineTo(x + width - chamfOffset, y);
    path.lineTo(0, y);
  } else {
    path.arcTo(x + width, y, x, y, radius);
  }
  if (chamfpos & 1) {
    path.lineTo(x + chamfOffset, y);
    path.lineTo(x, y + chamfOffset);
    path.lineTo(x, 0);
  } else {
    path.arcTo(x, y, x, y + height, radius);
  }
  path.closePath();
  return path;
}

function getOblongPath(size) {
  return getChamferedRectPath(size, Math.min(size[0], size[1]) / 2, 0, 0);
}

function getPolygonsPath(shape) {
  if (shape.path2d) {
    return shape.path2d;
  }
  if ("svgpath" in shape) {
    shape.path2d = new Path2D(shape.svgpath);
  } else {
    var path = new Path2D();
    for (var polygon of shape.polygons) {
      path.moveTo(...polygon[0]);
      for (var i = 1; i < polygon.length; i++) {
        path.lineTo(...polygon[i]);
      }
      path.closePath();
    }
    shape.path2d = path;
  }
  return shape.path2d;
}

function drawPolygonShape(ctx, scalefactor, shape, color) {
  ctx.save();
  if (!("svgpath" in shape)) {
    ctx.translate(...shape.pos);
    ctx.rotate(deg2rad(-shape.angle));
  }
  if("filled" in shape && !shape.filled) {
    ctx.strokeStyle = color;
    ctx.lineWidth = Math.max(1 / scalefactor, shape.width);
    ctx.lineCap = "round";
    ctx.lineJoin = "round";
    ctx.stroke(getPolygonsPath(shape));
  } else {
    ctx.fillStyle = color;
    ctx.fill(getPolygonsPath(shape));
  }
  ctx.restore();
}

function drawDrawing(ctx, scalefactor, drawing, color) {
  if (["segment", "arc", "circle", "curve", "rect"].includes(drawing.type)) {
    drawedge(ctx, scalefactor, drawing, color);
  } else if (drawing.type == "polygon") {
    drawPolygonShape(ctx, scalefactor, drawing, color);
  } else {
    drawText(ctx, drawing, color);
  }
}

function getCirclePath(radius) {
  var path = new Path2D();
  path.arc(0, 0, radius, 0, 2 * Math.PI);
  path.closePath();
  return path;
}

function getCachedPadPath(pad) {
  if (!pad.path2d) {
    // if path2d is not set, build one and cache it on pad object
    if (pad.shape == "rect") {
      pad.path2d = new Path2D();
      pad.path2d.rect(...pad.size.map(c => -c * 0.5), ...pad.size);
    } else if (pad.shape == "oval") {
      pad.path2d = getOblongPath(pad.size);
    } else if (pad.shape == "circle") {
      pad.path2d = getCirclePath(pad.size[0] / 2);
    } else if (pad.shape == "roundrect") {
      pad.path2d = getChamferedRectPath(pad.size, pad.radius, 0, 0);
    } else if (pad.shape == "chamfrect") {
      pad.path2d = getChamferedRectPath(pad.size, pad.radius, pad.chamfpos, pad.chamfratio)
    } else if (pad.shape == "custom") {
      pad.path2d = getPolygonsPath(pad);
    }
  }
  return pad.path2d;
}

function drawPad(ctx, pad, color, outline) {
  ctx.save();
  ctx.translate(...pad.pos);
  ctx.rotate(-deg2rad(pad.angle));
  if (pad.offset) {
    ctx.translate(...pad.offset);
  }
  ctx.fillStyle = color;
  ctx.strokeStyle = color;
  var path = getCachedPadPath(pad);
  if (outline) {
    ctx.stroke(path);
  } else {
    ctx.fill(path);
  }
  ctx.restore();
}

function drawPadHole(ctx, pad, padHoleColor) {
  if (pad.type != "th") return;
  ctx.save();
  ctx.translate(...pad.pos);
  ctx.rotate(-deg2rad(pad.angle));
  ctx.fillStyle = padHoleColor;
  if (pad.drillshape == "oblong") {
    ctx.fill(getOblongPath(pad.drillsize));
  } else {
    ctx.fill(getCirclePath(pad.drillsize[0] / 2));
  }
  ctx.restore();
}

function drawFootprint(ctx, layer, scalefactor, footprint, colors, highlight, outline) {
  if (highlight) {
    // draw bounding box
    if (footprint.layer == layer) {
      ctx.save();
      ctx.globalAlpha = 0.2;
      ctx.translate(...footprint.bbox.pos);
      ctx.rotate(deg2rad(-footprint.bbox.angle));
      ctx.translate(...footprint.bbox.relpos);
      ctx.fillStyle = colors.pad;
      ctx.fillRect(0, 0, ...footprint.bbox.size);
      ctx.globalAlpha = 1;
      ctx.strokeStyle = colors.pad;
      ctx.lineWidth = 3 / scalefactor;
      ctx.strokeRect(0, 0, ...footprint.bbox.size);
      ctx.restore();
    }
  }
  // draw drawings
  for (var drawing of footprint.drawings) {
    if (drawing.layer == layer) {
      drawDrawing(ctx, scalefactor, drawing.drawing, colors.pad);
    }
  }
  ctx.lineWidth = 3 / scalefactor;
  // draw pads
  if (settings.renderPads) {
    for (var pad of footprint.pads) {
      if (pad.layers.includes(layer)) {
        drawPad(ctx, pad, colors.pad, outline);
        if (pad.pin1 &&
          (settings.highlightpin1 == "all" ||
            settings.highlightpin1 == "selected" && highlight)) {
          drawPad(ctx, pad, colors.outline, true);
        }
      }
    }
    for (var pad of footprint.pads) {
      drawPadHole(ctx, pad, colors.padHole);
    }
  }
}

function drawEdgeCuts(canvas, scalefactor) {
  var ctx = canvas.getContext("2d");
  var edgecolor = getComputedStyle(topmostdiv).getPropertyValue('--pcb-edge-color');
  for (var edge of pcbdata.edges) {
    drawDrawing(ctx, scalefactor, edge, edgecolor);
  }
}

function drawFootprints(canvas, layer, scalefactor, highlight) {
  var ctx = canvas.getContext("2d");
  ctx.lineWidth = 3 / scalefactor;
  var style = getComputedStyle(topmostdiv);

  var colors = {
    pad: style.getPropertyValue('--pad-color'),
    padHole: style.getPropertyValue('--pad-hole-color'),
    outline: style.getPropertyValue('--pin1-outline-color'),
  }

  for (var i = 0; i < pcbdata.footprints.length; i++) {
    var mod = pcbdata.footprints[i];
    var outline = settings.renderDnpOutline && pcbdata.bom.skipped.includes(i);
    var h = highlightedFootprints.includes(i);
    var d = markedFootprints.has(i);
    if (highlight) {
      if(h && d) {
        colors.pad = style.getPropertyValue('--pad-color-highlight-both');
        colors.outline = style.getPropertyValue('--pin1-outline-color-highlight-both');
      } else if (h) {
        colors.pad = style.getPropertyValue('--pad-color-highlight');
        colors.outline = style.getPropertyValue('--pin1-outline-color-highlight');
      } else if (d) {
        colors.pad = style.getPropertyValue('--pad-color-highlight-marked');
        colors.outline = style.getPropertyValue('--pin1-outline-color-highlight-marked');
      }
    }
    if( h || d || !highlight) {
      drawFootprint(ctx, layer, scalefactor, mod, colors, highlight, outline);
    }
  }
}

function drawBgLayer(layername, canvas, layer, scalefactor, edgeColor, polygonColor, textColor) {
  var ctx = canvas.getContext("2d");
  for (var d of pcbdata.drawings[layername][layer]) {
    if (["segment", "arc", "circle", "curve", "rect"].includes(d.type)) {
      drawedge(ctx, scalefactor, d, edgeColor);
    } else if (d.type == "polygon") {
      drawPolygonShape(ctx, scalefactor, d, polygonColor);
    } else {
      drawText(ctx, d, textColor);
    }
  }
}

function drawTracks(canvas, layer, defaultColor, highlight) {
  ctx = canvas.getContext("2d");
  ctx.lineCap = "round";

  var hasHole = (track) => (
    'drillsize' in track &&
    track.start[0] == track.end[0] &&
    track.start[1] == track.end[1]);

  // First draw tracks and tented vias
  for (var track of pcbdata.tracks[layer]) {
    if (highlight && highlightedNet != track.net) continue;
    if (!hasHole(track)) {
      ctx.strokeStyle = highlight ? defaultColor : settings.netColors[track.net] || defaultColor;
      ctx.lineWidth = track.width;
      ctx.beginPath();
      if ('radius' in track) {
        ctx.arc(
          ...track.center,
          track.radius,
          deg2rad(track.startangle),
          deg2rad(track.endangle));
      } else {
        ctx.moveTo(...track.start);
        ctx.lineTo(...track.end);
      }
      ctx.stroke();
    }
  }
  // Second pass to draw untented vias
  var style = getComputedStyle(topmostdiv);
  var holeColor = style.getPropertyValue('--pad-hole-color')

  for (var track of pcbdata.tracks[layer]) {
    if (highlight && highlightedNet != track.net) continue;
    if (hasHole(track)) {
      ctx.strokeStyle = highlight ? defaultColor : settings.netColors[track.net] || defaultColor;
      ctx.lineWidth = track.width;
      ctx.beginPath();
      ctx.moveTo(...track.start);
      ctx.lineTo(...track.end);
      ctx.stroke();
      ctx.strokeStyle = holeColor;
      ctx.lineWidth = track.drillsize;
      ctx.lineTo(...track.end);
      ctx.stroke();
    }
  }
}

function drawZones(canvas, layer, defaultColor, highlight) {
  ctx = canvas.getContext("2d");
  ctx.lineJoin = "round";
  for (var zone of pcbdata.zones[layer]) {
    if (highlight && highlightedNet != zone.net) continue;
    ctx.strokeStyle = highlight ? defaultColor : settings.netColors[zone.net] || defaultColor;
    ctx.fillStyle = highlight ? defaultColor : settings.netColors[zone.net] || defaultColor;
    if (!zone.path2d) {
      zone.path2d = getPolygonsPath(zone);
    }
    ctx.fill(zone.path2d, zone.fillrule || "nonzero");
    if (zone.width > 0) {
      ctx.lineWidth = zone.width;
      ctx.stroke(zone.path2d);
    }
  }
}

function clearCanvas(canvas, color = null) {
  var ctx = canvas.getContext("2d");
  ctx.save();
  ctx.setTransform(1, 0, 0, 1, 0, 0);
  if (color) {
    ctx.fillStyle = color;
    ctx.fillRect(0, 0, canvas.width, canvas.height);
  } else {
    if (!window.matchMedia("print").matches)
      ctx.clearRect(0, 0, canvas.width, canvas.height);
  }
  ctx.restore();
}

function drawNets(canvas, layer, highlight) {
  var style = getComputedStyle(topmostdiv);
  if (settings.renderZones) {
    var zoneColor = style.getPropertyValue(highlight ? '--zone-color-highlight' : '--zone-color');
    drawZones(canvas, layer, zoneColor, highlight);
  }
  if (settings.renderTracks) {
    var trackColor = style.getPropertyValue(highlight ? '--track-color-highlight' : '--track-color');
    drawTracks(canvas, layer, trackColor, highlight);
  }
  if (highlight && settings.renderPads) {
    var padColor = style.getPropertyValue('--pad-color-highlight');
    var padHoleColor = style.getPropertyValue('--pad-hole-color');
    var ctx = canvas.getContext("2d");
    for (var footprint of pcbdata.footprints) {
      // draw pads
      var padDrawn = false;
      for (var pad of footprint.pads) {
        if (highlightedNet != pad.net) continue;
        if (pad.layers.includes(layer)) {
          drawPad(ctx, pad, padColor, false);
          padDrawn = true;
        }
      }
      if (padDrawn) {
        // redraw all pad holes because some pads may overlap
        for (var pad of footprint.pads) {
          drawPadHole(ctx, pad, padHoleColor);
        }
      }
    }
  }
}

function drawHighlightsOnLayer(canvasdict, clear = true) {
  if (clear) {
    clearCanvas(canvasdict.highlight);
  }
  if (markedFootprints.size > 0 || highlightedFootprints.length > 0) {
    drawFootprints(canvasdict.highlight, canvasdict.layer,
      canvasdict.transform.s * canvasdict.transform.zoom, true);
  }
  if (highlightedNet !== null) {
    drawNets(canvasdict.highlight, canvasdict.layer, true);
  }
}

function drawHighlights() {
  drawHighlightsOnLayer(allcanvas.front);
  drawHighlightsOnLayer(allcanvas.back);
}

function drawBackground(canvasdict, clear = true) {
  if (clear) {
    clearCanvas(canvasdict.bg);
    clearCanvas(canvasdict.fab);
    clearCanvas(canvasdict.silk);
  }

  drawNets(canvasdict.bg, canvasdict.layer, false);
  drawFootprints(canvasdict.bg, canvasdict.layer,
    canvasdict.transform.s * canvasdict.transform.zoom, false);

  drawEdgeCuts(canvasdict.bg, canvasdict.transform.s * canvasdict.transform.zoom);

  var style = getComputedStyle(topmostdiv);
  var edgeColor = style.getPropertyValue('--silkscreen-edge-color');
  var polygonColor = style.getPropertyValue('--silkscreen-polygon-color');
  var textColor = style.getPropertyValue('--silkscreen-text-color');
  if (settings.renderSilkscreen) {
    drawBgLayer(
      "silkscreen", canvasdict.silk, canvasdict.layer,
      canvasdict.transform.s * canvasdict.transform.zoom,
      edgeColor, polygonColor, textColor);
  }
  edgeColor = style.getPropertyValue('--fabrication-edge-color');
  polygonColor = style.getPropertyValue('--fabrication-polygon-color');
  textColor = style.getPropertyValue('--fabrication-text-color');
  if (settings.renderFabrication) {
    drawBgLayer(
      "fabrication", canvasdict.fab, canvasdict.layer,
      canvasdict.transform.s * canvasdict.transform.zoom,
      edgeColor, polygonColor, textColor);
  }
}

function prepareCanvas(canvas, flip, transform) {
  var ctx = canvas.getContext("2d");
  ctx.setTransform(1, 0, 0, 1, 0, 0);
  ctx.scale(transform.zoom, transform.zoom);
  ctx.translate(transform.panx, transform.pany);
  if (flip) {
    ctx.scale(-1, 1);
  }
  ctx.translate(transform.x, transform.y);
  ctx.rotate(deg2rad(settings.boardRotation + (flip && settings.offsetBackRotation ? - 180 : 0)));
  ctx.scale(transform.s, transform.s);
}

function prepareLayer(canvasdict) {
  var flip = (canvasdict.layer === "B");
  for (var c of ["bg", "fab", "silk", "highlight"]) {
    prepareCanvas(canvasdict[c], flip, canvasdict.transform);
  }
}

function rotateVector(v, angle) {
  angle = deg2rad(angle);
  return [
    v[0] * Math.cos(angle) - v[1] * Math.sin(angle),
    v[0] * Math.sin(angle) + v[1] * Math.cos(angle)
  ];
}

function applyRotation(bbox, flip) {
  var corners = [
    [bbox.minx, bbox.miny],
    [bbox.minx, bbox.maxy],
    [bbox.maxx, bbox.miny],
    [bbox.maxx, bbox.maxy],
  ];
  corners = corners.map((v) => rotateVector(v, settings.boardRotation + (flip && settings.offsetBackRotation ? - 180 : 0)));
  return {
    minx: corners.reduce((a, v) => Math.min(a, v[0]), Infinity),
    miny: corners.reduce((a, v) => Math.min(a, v[1]), Infinity),
    maxx: corners.reduce((a, v) => Math.max(a, v[0]), -Infinity),
    maxy: corners.reduce((a, v) => Math.max(a, v[1]), -Infinity),
  }
}

function recalcLayerScale(layerdict, width, height) {
  var flip = (layerdict.layer === "B");
  var bbox = applyRotation(pcbdata.edges_bbox, flip);
  var scalefactor = 0.98 * Math.min(
    width / (bbox.maxx - bbox.minx),
    height / (bbox.maxy - bbox.miny)
  );
  if (scalefactor < 0.1) {
    scalefactor = 1;
  }
  layerdict.transform.s = scalefactor;
  if (flip) {
    layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor + width) * 0.5;
  } else {
    layerdict.transform.x = -((bbox.maxx + bbox.minx) * scalefactor - width) * 0.5;
  }
  layerdict.transform.y = -((bbox.maxy + bbox.miny) * scalefactor - height) * 0.5;
  for (var c of ["bg", "fab", "silk", "highlight"]) {
    canvas = layerdict[c];
    canvas.width = width;
    canvas.height = height;
    canvas.style.width = (width / devicePixelRatio) + "px";
    canvas.style.height = (height / devicePixelRatio) + "px";
  }
}

function redrawCanvas(layerdict) {
  prepareLayer(layerdict);
  drawBackground(layerdict);
  drawHighlightsOnLayer(layerdict);
}

function resizeCanvas(layerdict) {
  var canvasdivid = {
    "F": "frontcanvas",
    "B": "backcanvas"
  } [layerdict.layer];
  var width = document.getElementById(canvasdivid).clientWidth * devicePixelRatio;
  var height = document.getElementById(canvasdivid).clientHeight * devicePixelRatio;
  recalcLayerScale(layerdict, width, height);
  redrawCanvas(layerdict);
}

function resizeAll() {
  resizeCanvas(allcanvas.front);
  resizeCanvas(allcanvas.back);
}

function pointWithinDistanceToSegment(x, y, x1, y1, x2, y2, d) {
  var A = x - x1;
  var B = y - y1;
  var C = x2 - x1;
  var D = y2 - y1;

  var dot = A * C + B * D;
  var len_sq = C * C + D * D;
  var dx, dy;
  if (len_sq == 0) {
    // start and end of the segment coincide
    dx = x - x1;
    dy = y - y1;
  } else {
    var param = dot / len_sq;
    var xx, yy;
    if (param < 0) {
      xx = x1;
      yy = y1;
    } else if (param > 1) {
      xx = x2;
      yy = y2;
    } else {
      xx = x1 + param * C;
      yy = y1 + param * D;
    }
    dx = x - xx;
    dy = y - yy;
  }
  return dx * dx + dy * dy <= d * d;
}

function modulo(n, mod) {
  return ((n % mod) + mod) % mod;
}

function pointWithinDistanceToArc(x, y, xc, yc, radius, startangle, endangle, d) {
  var dx = x - xc;
  var dy = y - yc;
  var r_sq = dx * dx + dy * dy;
  var rmin = Math.max(0, radius - d);
  var rmax = radius + d;

  if (r_sq < rmin * rmin || r_sq > rmax * rmax)
    return false;

  var angle1 = modulo(deg2rad(startangle), 2 * Math.PI);
  var dx1 = xc + radius * Math.cos(angle1) - x;
  var dy1 = yc + radius * Math.sin(angle1) - y;
  if (dx1 * dx1 + dy1 * dy1 <= d * d)
    return true;

  var angle2 = modulo(deg2rad(endangle), 2 * Math.PI);
  var dx2 = xc + radius * Math.cos(angle2) - x;
  var dy2 = yc + radius * Math.sin(angle2) - y;
  if (dx2 * dx2 + dy2 * dy2 <= d * d)
    return true;

  var angle = modulo(Math.atan2(dy, dx), 2 * Math.PI);
  if (angle1 > angle2)
    return (angle >= angle2 || angle <= angle1);
  else
    return (angle >= angle1 && angle <= angle2);
}

function pointWithinPad(x, y, pad) {
  var v = [x - pad.pos[0], y - pad.pos[1]];
  v = rotateVector(v, pad.angle);
  if (pad.offset) {
    v[0] -= pad.offset[0];
    v[1] -= pad.offset[1];
  }
  return emptyContext2d.isPointInPath(getCachedPadPath(pad), ...v);
}

function netHitScan(layer, x, y) {
  // Check track segments
  if (settings.renderTracks && pcbdata.tracks) {
    for (var track of pcbdata.tracks[layer]) {
      if ('radius' in track) {
        if (pointWithinDistanceToArc(x, y, ...track.center, track.radius, track.startangle, track.endangle, track.width / 2)) {
          return track.net;
        }
      } else {
        if (pointWithinDistanceToSegment(x, y, ...track.start, ...track.end, track.width / 2)) {
          return track.net;
        }
      }
    }
  }
  // Check pads
  if (settings.renderPads) {
    for (var footprint of pcbdata.footprints) {
      for (var pad of footprint.pads) {
        if (pad.layers.includes(layer) && pointWithinPad(x, y, pad)) {
          return pad.net;
        }
      }
    }
  }
  return null;
}

function pointWithinFootprintBbox(x, y, bbox) {
  var v = [x - bbox.pos[0], y - bbox.pos[1]];
  v = rotateVector(v, bbox.angle);
  return bbox.relpos[0] <= v[0] && v[0] <= bbox.relpos[0] + bbox.size[0] &&
    bbox.relpos[1] <= v[1] && v[1] <= bbox.relpos[1] + bbox.size[1];
}

function bboxHitScan(layer, x, y) {
  var result = [];
  for (var i = 0; i < pcbdata.footprints.length; i++) {
    var footprint = pcbdata.footprints[i];
    if (footprint.layer == layer) {
      if (pointWithinFootprintBbox(x, y, footprint.bbox)) {
        result.push(i);
      }
    }
  }
  return result;
}

function handlePointerDown(e, layerdict) {
  if (e.button != 0 && e.button != 1) {
    return;
  }
  e.preventDefault();
  e.stopPropagation();

  if (!e.hasOwnProperty("offsetX")) {
    // The polyfill doesn't set this properly
    e.offsetX = e.pageX - e.currentTarget.offsetLeft;
    e.offsetY = e.pageY - e.currentTarget.offsetTop;
  }

  layerdict.pointerStates[e.pointerId] = {
    distanceTravelled: 0,
    lastX: e.offsetX,
    lastY: e.offsetY,
    downTime: Date.now(),
  };
}

function handleMouseClick(e, layerdict) {
  if (!e.hasOwnProperty("offsetX")) {
    // The polyfill doesn't set this properly
    e.offsetX = e.pageX - e.currentTarget.offsetLeft;
    e.offsetY = e.pageY - e.currentTarget.offsetTop;
  }

  var x = e.offsetX;
  var y = e.offsetY;
  var t = layerdict.transform;
  var flip = layerdict.layer === "B";
  if (flip) {
    x = (devicePixelRatio * x / t.zoom - t.panx + t.x) / -t.s;
  } else {
    x = (devicePixelRatio * x / t.zoom - t.panx - t.x) / t.s;
  }
  y = (devicePixelRatio * y / t.zoom - t.y - t.pany) / t.s;
  var v = rotateVector([x, y], -settings.boardRotation + (flip && settings.offsetBackRotation ? - 180 : 0));
  if ("nets" in pcbdata) {
    var net = netHitScan(layerdict.layer, ...v);
    if (net !== highlightedNet) {
      netClicked(net);
    }
  }
  if (highlightedNet === null) {
    var footprints = bboxHitScan(layerdict.layer, ...v);
    if (footprints.length > 0) {
      footprintsClicked(footprints);
    }
  }
}

function handlePointerLeave(e, layerdict) {
  e.preventDefault();
  e.stopPropagation();

  if (!settings.redrawOnDrag) {
    redrawCanvas(layerdict);
  }

  delete layerdict.pointerStates[e.pointerId];
}

function resetTransform(layerdict) {
  layerdict.transform.panx = 0;
  layerdict.transform.pany = 0;
  layerdict.transform.zoom = 1;
  redrawCanvas(layerdict);
}

function handlePointerUp(e, layerdict) {
  if (!e.hasOwnProperty("offsetX")) {
    // The polyfill doesn't set this properly
    e.offsetX = e.pageX - e.currentTarget.offsetLeft;
    e.offsetY = e.pageY - e.currentTarget.offsetTop;
  }

  e.preventDefault();
  e.stopPropagation();

  if (e.button == 2) {
    // Reset pan and zoom on right click.
    resetTransform(layerdict);
    layerdict.anotherPointerTapped = false;
    return;
  }

  // We haven't necessarily had a pointermove event since the interaction started, so make sure we update this now
  var ptr = layerdict.pointerStates[e.pointerId];
  ptr.distanceTravelled += Math.abs(e.offsetX - ptr.lastX) + Math.abs(e.offsetY - ptr.lastY);

  if (e.button == 0 && ptr.distanceTravelled < 10 && Date.now() - ptr.downTime <= 500) {
    if (Object.keys(layerdict.pointerStates).length == 1) {
      if (layerdict.anotherPointerTapped) {
        // This is the second pointer coming off of a two-finger tap
        resetTransform(layerdict);
      } else {
        // This is just a regular tap
        handleMouseClick(e, layerdict);
      }
      layerdict.anotherPointerTapped = false;
    } else {
      // This is the first finger coming off of what could become a two-finger tap
      layerdict.anotherPointerTapped = true;
    }
  } else {
    if (!settings.redrawOnDrag) {
      redrawCanvas(layerdict);
    }
    layerdict.anotherPointerTapped = false;
  }

  delete layerdict.pointerStates[e.pointerId];
}

function handlePointerMove(e, layerdict) {
  if (!layerdict.pointerStates.hasOwnProperty(e.pointerId)) {
    return;
  }
  e.preventDefault();
  e.stopPropagation();

  if (!e.hasOwnProperty("offsetX")) {
    // The polyfill doesn't set this properly
    e.offsetX = e.pageX - e.currentTarget.offsetLeft;
    e.offsetY = e.pageY - e.currentTarget.offsetTop;
  }

  var thisPtr = layerdict.pointerStates[e.pointerId];

  var dx = e.offsetX - thisPtr.lastX;
  var dy = e.offsetY - thisPtr.lastY;

  // If this number is low on pointer up, we count the action as a click
  thisPtr.distanceTravelled += Math.abs(dx) + Math.abs(dy);

  if (Object.keys(layerdict.pointerStates).length == 1) {
    // This is a simple drag
    layerdict.transform.panx += devicePixelRatio * dx / layerdict.transform.zoom;
    layerdict.transform.pany += devicePixelRatio * dy / layerdict.transform.zoom;
  } else if (Object.keys(layerdict.pointerStates).length == 2) {
    var otherPtr = Object.values(layerdict.pointerStates).filter((ptr) => ptr != thisPtr)[0];

    var oldDist = Math.sqrt(Math.pow(thisPtr.lastX - otherPtr.lastX, 2) + Math.pow(thisPtr.lastY - otherPtr.lastY, 2));
    var newDist = Math.sqrt(Math.pow(e.offsetX - otherPtr.lastX, 2) + Math.pow(e.offsetY - otherPtr.lastY, 2));

    var scaleFactor = newDist / oldDist;

    if (scaleFactor != NaN) {
      layerdict.transform.zoom *= scaleFactor;

      var zoomd = (1 - scaleFactor) / layerdict.transform.zoom;
      layerdict.transform.panx += devicePixelRatio * otherPtr.lastX * zoomd;
      layerdict.transform.pany += devicePixelRatio * otherPtr.lastY * zoomd;
    }
  }

  thisPtr.lastX = e.offsetX;
  thisPtr.lastY = e.offsetY;

  if (settings.redrawOnDrag) {
    redrawCanvas(layerdict);
  }
}

function handleMouseWheel(e, layerdict) {
  e.preventDefault();
  e.stopPropagation();
  var t = layerdict.transform;
  var wheeldelta = e.deltaY;
  if (e.deltaMode == 1) {
    // FF only, scroll by lines
    wheeldelta *= 30;
  } else if (e.deltaMode == 2) {
    wheeldelta *= 300;
  }
  var m = Math.pow(1.1, -wheeldelta / 40);
  // Limit amount of zoom per tick.
  if (m > 2) {
    m = 2;
  } else if (m < 0.5) {
    m = 0.5;
  }
  t.zoom *= m;
  var zoomd = (1 - m) / t.zoom;
  t.panx += devicePixelRatio * e.offsetX * zoomd;
  t.pany += devicePixelRatio * e.offsetY * zoomd;
  redrawCanvas(layerdict);
}

function addMouseHandlers(div, layerdict) {
  div.addEventListener("pointerdown", function(e) {
    handlePointerDown(e, layerdict);
  });
  div.addEventListener("pointermove", function(e) {
    handlePointerMove(e, layerdict);
  });
  div.addEventListener("pointerup", function(e) {
    handlePointerUp(e, layerdict);
  });
  var pointerleave = function(e) {
    handlePointerLeave(e, layerdict);
  }
  div.addEventListener("pointercancel", pointerleave);
  div.addEventListener("pointerleave", pointerleave);
  div.addEventListener("pointerout", pointerleave);

  div.onwheel = function(e) {
    handleMouseWheel(e, layerdict);
  }
  for (var element of [div, layerdict.bg, layerdict.fab, layerdict.silk, layerdict.highlight]) {
    element.addEventListener("contextmenu", function(e) {
      e.preventDefault();
    }, false);
  }
}

function setRedrawOnDrag(value) {
  settings.redrawOnDrag = value;
  writeStorage("redrawOnDrag", value);
}

function setBoardRotation(value) {
  settings.boardRotation = value * 5;
  writeStorage("boardRotation", settings.boardRotation);
  document.getElementById("rotationDegree").textContent = settings.boardRotation;
  resizeAll();
}

function setOffsetBackRotation(value) {
  settings.offsetBackRotation = value;
  writeStorage("offsetBackRotation", value);
  resizeAll();
}

function initRender() {
  allcanvas = {
    front: {
      transform: {
        x: 0,
        y: 0,
        s: 1,
        panx: 0,
        pany: 0,
        zoom: 1,
      },
      pointerStates: {},
      anotherPointerTapped: false,
      bg: document.getElementById("F_bg"),
      fab: document.getElementById("F_fab"),
      silk: document.getElementById("F_slk"),
      highlight: document.getElementById("F_hl"),
      layer: "F",
    },
    back: {
      transform: {
        x: 0,
        y: 0,
        s: 1,
        panx: 0,
        pany: 0,
        zoom: 1,
      },
      pointerStates: {},
      anotherPointerTapped: false,
      bg: document.getElementById("B_bg"),
      fab: document.getElementById("B_fab"),
      silk: document.getElementById("B_slk"),
      highlight: document.getElementById("B_hl"),
      layer: "B",
    }
  };
  addMouseHandlers(document.getElementById("frontcanvas"), allcanvas.front);
  addMouseHandlers(document.getElementById("backcanvas"), allcanvas.back);
}

///////////////////////////////////////////////

///////////////////////////////////////////////
/*
 * Table reordering via Drag'n'Drop
 * Inspired by: https://htmldom.dev/drag-and-drop-table-column
 */

function setBomHandlers() {

  const bom = document.getElementById('bomtable');

  let dragName;
  let placeHolderElements;
  let draggingElement;
  let forcePopulation;
  let xOffset;
  let yOffset;
  let wasDragged;

  const mouseUpHandler = function(e) {
    // Delete dragging element
    draggingElement.remove();

    // Make BOM selectable again
    bom.style.removeProperty("userSelect");

    // Remove listeners
    document.removeEventListener('mousemove', mouseMoveHandler);
    document.removeEventListener('mouseup', mouseUpHandler);

    if (wasDragged) {
      // Redraw whole BOM
      populateBomTable();
    }
  }

  const mouseMoveHandler = function(e) {
    // Notice the dragging
    wasDragged = true;

    // Make the dragged element visible
    draggingElement.style.removeProperty("display");

    // Set elements position to mouse position
    draggingElement.style.left = `${e.screenX - xOffset}px`;
    draggingElement.style.top = `${e.screenY - yOffset}px`;

    // Forced redrawing of BOM table
    if (forcePopulation) {
      forcePopulation = false;
      // Copy array
      phe = Array.from(placeHolderElements);
      // populate BOM table again
      populateBomHeader(dragName, phe);
      populateBomBody(dragName, phe);
    }

    // Set up array of hidden columns
    var hiddenColumns = Array.from(settings.hiddenColumns);
    // In the ungrouped mode, quantity don't exist
    if (settings.bommode === "ungrouped")
      hiddenColumns.push("Quantity");
    // If no checkbox fields can be found, we consider them hidden
    if (settings.checkboxes.length == 0)
      hiddenColumns.push("checkboxes");

    // Get table headers and group them into checkboxes, extrafields and normal headers
    const bh = document.getElementById("bomhead");
    headers = Array.from(bh.querySelectorAll("th"))
    headers.shift() // numCol is not part of the columnOrder
    headerGroups = []
    lastCompoundClass = null;
    for (i = 0; i < settings.columnOrder.length; i++) {
      cElem = settings.columnOrder[i];
      if (hiddenColumns.includes(cElem)) {
        // Hidden columns appear as a dummy element
        headerGroups.push([]);
        continue;
      }
      elem = headers.filter(e => getColumnOrderName(e) === cElem)[0];
      if (elem.classList.contains("bom-checkbox")) {
        if (lastCompoundClass === "bom-checkbox") {
          cbGroup = headerGroups.pop();
          cbGroup.push(elem);
          headerGroups.push(cbGroup);
        } else {
          lastCompoundClass = "bom-checkbox";
          headerGroups.push([elem])
        }
      } else {
        headerGroups.push([elem])
      }
    }

    // Copy settings.columnOrder
    var columns = Array.from(settings.columnOrder)

    // Set up array with indices of hidden columns
    var hiddenIndices = hiddenColumns.map(e => settings.columnOrder.indexOf(e));
    var dragIndex = columns.indexOf(dragName);
    var swapIndex = dragIndex;
    var swapDone = false;

    // Check if the current dragged element is swapable with the left or right element
    if (dragIndex > 0) {
      // Get left headers boundingbox
      swapIndex = dragIndex - 1;
      while (hiddenIndices.includes(swapIndex) && swapIndex > 0)
        swapIndex--;
      if (!hiddenIndices.includes(swapIndex)) {
        box = getBoundingClientRectFromMultiple(headerGroups[swapIndex]);
        if (e.clientX < box.left + window.scrollX + (box.width / 2)) {
          swapElement = columns[dragIndex];
          columns.splice(dragIndex, 1);
          columns.splice(swapIndex, 0, swapElement);
          forcePopulation = true;
          swapDone = true;
        }
      }
    }
    if ((!swapDone) && dragIndex < headerGroups.length - 1) {
      // Get right headers boundingbox
      swapIndex = dragIndex + 1;
      while (hiddenIndices.includes(swapIndex))
        swapIndex++;
      if (swapIndex < headerGroups.length) {
        box = getBoundingClientRectFromMultiple(headerGroups[swapIndex]);
        if (e.clientX > box.left + window.scrollX + (box.width / 2)) {
          swapElement = columns[dragIndex];
          columns.splice(dragIndex, 1);
          columns.splice(swapIndex, 0, swapElement);
          forcePopulation = true;
          swapDone = true;
        }
      }
    }

    // Write back change to storage
    if (swapDone) {
      settings.columnOrder = columns
      writeStorage("columnOrder", JSON.stringify(columns));
    }

  }

  const mouseDownHandler = function(e) {
    var target = e.target;
    if (target.tagName.toLowerCase() != "td")
      target = target.parentElement;

    // Used to check if a dragging has ever happened
    wasDragged = false;

    // Create new element which will be displayed as the dragged column
    draggingElement = document.createElement("div")
    draggingElement.classList.add("dragging");
    draggingElement.style.display = "none";
    draggingElement.style.position = "absolute";
    draggingElement.style.overflow = "hidden";

    // Get bomhead and bombody elements
    const bh = document.getElementById("bomhead");
    const bb = document.getElementById("bombody");

    // Get all compound headers for the current column
    var compoundHeaders;
    if (target.classList.contains("bom-checkbox")) {
      compoundHeaders = Array.from(bh.querySelectorAll("th.bom-checkbox"));
    } else {
      compoundHeaders = [target];
    }

    // Create new table which will display the column
    var newTable = document.createElement("table");
    newTable.classList.add("bom");
    newTable.style.background = "white";
    draggingElement.append(newTable);

    // Create new header element
    var newHeader = document.createElement("thead");
    newTable.append(newHeader);

    // Set up array for storing all placeholder elements
    placeHolderElements = [];

    // Add all compound headers to the new thead element and placeholders
    compoundHeaders.forEach(function(h) {
      clone = cloneElementWithDimensions(h);
      newHeader.append(clone);
      placeHolderElements.push(clone);
    });

    // Create new body element
    var newBody = document.createElement("tbody");
    newTable.append(newBody);

    // Get indices for compound headers
    var idxs = compoundHeaders.map(e => getBomTableHeaderIndex(e));

    // For each row in the BOM body...
    var rows = bb.querySelectorAll("tr");
    rows.forEach(function(row) {
      // ..get the cells for the compound column
      const tds = row.querySelectorAll("td");
      var copytds = idxs.map(i => tds[i]);
      // Add them to the new element and the placeholders
      var newRow = document.createElement("tr");
      copytds.forEach(function(td) {
        clone = cloneElementWithDimensions(td);
        newRow.append(clone);
        placeHolderElements.push(clone);
      });
      newBody.append(newRow);
    });

    // Compute width for compound header
    var width = compoundHeaders.reduce((acc, x) => acc + x.clientWidth, 0);
    draggingElement.style.width = `${width}px`;

    // Insert the new dragging element and disable selection on BOM
    bom.insertBefore(draggingElement, null);
    bom.style.userSelect = "none";

    // Determine the mouse position offset
    xOffset = e.screenX - compoundHeaders.reduce((acc, x) => Math.min(acc, x.offsetLeft), compoundHeaders[0].offsetLeft);
    yOffset = e.screenY - compoundHeaders[0].offsetTop;

    // Get name for the column in settings.columnOrder
    dragName = getColumnOrderName(target);

    // Change text and class for placeholder elements
    placeHolderElements = placeHolderElements.map(function(e) {
      newElem = cloneElementWithDimensions(e);
      newElem.textContent = "";
      newElem.classList.add("placeholder");
      return newElem;
    });

    // On next mouse move, the whole BOM needs to be redrawn to show the placeholders
    forcePopulation = true;

    // Add listeners for move and up on mouse
    document.addEventListener('mousemove', mouseMoveHandler);
    document.addEventListener('mouseup', mouseUpHandler);
  }

  // In netlist mode, there is nothing to reorder
  if (settings.bommode === "netlist")
    return;

  // Add mouseDownHandler to every column except the numCol
  bom.querySelectorAll("th")
    .forEach(function(head) {
      if (!head.classList.contains("numCol")) {
        head.onmousedown = mouseDownHandler;
      }
    });

}

function getBoundingClientRectFromMultiple(elements) {
  var elems = Array.from(elements);

  if (elems.length == 0)
    return null;

  var box = elems.shift()
    .getBoundingClientRect();

  elems.forEach(function(elem) {
    var elembox = elem.getBoundingClientRect();
    box.left = Math.min(elembox.left, box.left);
    box.top = Math.min(elembox.top, box.top);
    box.width += elembox.width;
    box.height = Math.max(elembox.height, box.height);
  });

  return box;
}

function cloneElementWithDimensions(elem) {
  var newElem = elem.cloneNode(true);
  newElem.style.height = window.getComputedStyle(elem).height;
  newElem.style.width = window.getComputedStyle(elem).width;
  return newElem;
}

function getBomTableHeaderIndex(elem) {
  const bh = document.getElementById('bomhead');
  const ths = Array.from(bh.querySelectorAll("th"));
  return ths.indexOf(elem);
}

function getColumnOrderName(elem) {
  var cname = elem.getAttribute("col_name");
  if (cname === "bom-checkbox")
    return "checkboxes";
  else
    return cname;
}

function resizableGrid(tablehead) {
  var cols = tablehead.firstElementChild.children;
  var rowWidth = tablehead.offsetWidth;

  for (var i = 1; i < cols.length; i++) {
    if (cols[i].classList.contains("bom-checkbox"))
      continue;
    cols[i].style.width = ((cols[i].clientWidth - paddingDiff(cols[i])) * 100 / rowWidth) + '%';
  }

  for (var i = 1; i < cols.length - 1; i++) {
    var div = document.createElement('div');
    div.className = "column-width-handle";
    cols[i].appendChild(div);
    setListeners(div);
  }

  function setListeners(div) {
    var startX, curCol, nxtCol, curColWidth, nxtColWidth, rowWidth;

    div.addEventListener('mousedown', function(e) {
      e.preventDefault();
      e.stopPropagation();

      curCol = e.target.parentElement;
      nxtCol = curCol.nextElementSibling;
      startX = e.pageX;

      var padding = paddingDiff(curCol);

      rowWidth = curCol.parentElement.offsetWidth;
      curColWidth = curCol.clientWidth - padding;
      nxtColWidth = nxtCol.clientWidth - padding;
    });

    document.addEventListener('mousemove', function(e) {
      if (startX) {
        var diffX = e.pageX - startX;
        diffX = -Math.min(-diffX, curColWidth - 20);
        diffX = Math.min(diffX, nxtColWidth - 20);

        curCol.style.width = ((curColWidth + diffX) * 100 / rowWidth) + '%';
        nxtCol.style.width = ((nxtColWidth - diffX) * 100 / rowWidth) + '%';
        console.log(`${curColWidth + nxtColWidth} ${(curColWidth + diffX) * 100 / rowWidth + (nxtColWidth - diffX) * 100 / rowWidth}`);
      }
    });

    document.addEventListener('mouseup', function(e) {
      curCol = undefined;
      nxtCol = undefined;
      startX = undefined;
      nxtColWidth = undefined;
      curColWidth = undefined
    });
  }

  function paddingDiff(col) {

    if (getStyleVal(col, 'box-sizing') == 'border-box') {
      return 0;
    }

    var padLeft = getStyleVal(col, 'padding-left');
    var padRight = getStyleVal(col, 'padding-right');
    return (parseInt(padLeft) + parseInt(padRight));

  }

  function getStyleVal(elm, css) {
    return (window.getComputedStyle(elm, null).getPropertyValue(css))
  }
}

///////////////////////////////////////////////

///////////////////////////////////////////////
/* DOM manipulation and misc code */

var bomsplit;
var canvassplit;
var initDone = false;
var bomSortFunction = null;
var currentSortColumn = null;
var currentSortOrder = null;
var currentHighlightedRowId;
var highlightHandlers = [];
var footprintIndexToHandler = {};
var netsToHandler = {};
var markedFootprints = new Set();
var highlightedFootprints = [];
var highlightedNet = null;
var lastClicked;

function dbg(html) {
  dbgdiv.innerHTML = html;
}

function redrawIfInitDone() {
  if (initDone) {
    redrawCanvas(allcanvas.front);
    redrawCanvas(allcanvas.back);
  }
}

function padsVisible(value) {
  writeStorage("padsVisible", value);
  settings.renderPads = value;
  redrawIfInitDone();
}

function referencesVisible(value) {
  writeStorage("referencesVisible", value);
  settings.renderReferences = value;
  redrawIfInitDone();
}

function valuesVisible(value) {
  writeStorage("valuesVisible", value);
  settings.renderValues = value;
  redrawIfInitDone();
}

function tracksVisible(value) {
  writeStorage("tracksVisible", value);
  settings.renderTracks = value;
  redrawIfInitDone();
}

function zonesVisible(value) {
  writeStorage("zonesVisible", value);
  settings.renderZones = value;
  redrawIfInitDone();
}

function dnpOutline(value) {
  writeStorage("dnpOutline", value);
  settings.renderDnpOutline = value;
  redrawIfInitDone();
}

function setDarkMode(value) {
  if (value) {
    topmostdiv.classList.add("dark");
  } else {
    topmostdiv.classList.remove("dark");
  }
  writeStorage("darkmode", value);
  settings.darkMode = value;
  redrawIfInitDone();
  if (initDone) {
    populateBomTable();
  }
}

function setShowBOMColumn(field, value) {
  if (field === "references") {
    var rl = document.getElementById("reflookup");
    rl.disabled = !value;
    if (!value) {
      rl.value = "";
      updateRefLookup("");
    }
  }

  var n = settings.hiddenColumns.indexOf(field);
  if (value) {
    if (n != -1) {
      settings.hiddenColumns.splice(n, 1);
    }
  } else {
    if (n == -1) {
      settings.hiddenColumns.push(field);
    }
  }

  writeStorage("hiddenColumns", JSON.stringify(settings.hiddenColumns));

  if (initDone) {
    populateBomTable();
  }

  redrawIfInitDone();
}


function setFullscreen(value) {
  if (value) {
    document.documentElement.requestFullscreen();
  } else {
    document.exitFullscreen();
  }
}

function fabricationVisible(value) {
  writeStorage("fabricationVisible", value);
  settings.renderFabrication = value;
  redrawIfInitDone();
}

function silkscreenVisible(value) {
  writeStorage("silkscreenVisible", value);
  settings.renderSilkscreen = value;
  redrawIfInitDone();
}

function setHighlightPin1(value) {
  writeStorage("highlightpin1", value);
  settings.highlightpin1 = value;
  redrawIfInitDone();
}

function getStoredCheckboxRefs(checkbox) {
  function convert(ref) {
    var intref = parseInt(ref);
    if (isNaN(intref)) {
      for (var i = 0; i < pcbdata.footprints.length; i++) {
        if (pcbdata.footprints[i].ref == ref) {
          return i;
        }
      }
      return -1;
    } else {
      return intref;
    }
  }
  if (!(checkbox in settings.checkboxStoredRefs)) {
    var val = readStorage("checkbox_" + checkbox);
    settings.checkboxStoredRefs[checkbox] = val ? val : "";
  }
  if (!settings.checkboxStoredRefs[checkbox]) {
    return new Set();
  } else {
    return new Set(settings.checkboxStoredRefs[checkbox].split(",").map(r => convert(r)).filter(a => a >= 0));
  }
}

function getCheckboxState(checkbox, references) {
  var storedRefsSet = getStoredCheckboxRefs(checkbox);
  var currentRefsSet = new Set(references.map(r => r[1]));
  // Get difference of current - stored
  var difference = new Set(currentRefsSet);
  for (ref of storedRefsSet) {
    difference.delete(ref);
  }
  if (difference.size == 0) {
    // All the current refs are stored
    return "checked";
  } else if (difference.size == currentRefsSet.size) {
    // None of the current refs are stored
    return "unchecked";
  } else {
    // Some of the refs are stored
    return "indeterminate";
  }
}

function setBomCheckboxState(checkbox, element, references) {
  var state = getCheckboxState(checkbox, references);
  element.checked = (state == "checked");
  element.indeterminate = (state == "indeterminate");
}

function createCheckboxChangeHandler(checkbox, references, row) {
  return function () {
    refsSet = getStoredCheckboxRefs(checkbox);
    var markWhenChecked = settings.markWhenChecked == checkbox;
    eventArgs = {
      checkbox: checkbox,
      refs: references,
    }
    if (this.checked) {
      // checkbox ticked
      for (var ref of references) {
        refsSet.add(ref[1]);
      }
      if (markWhenChecked) {
        row.classList.add("checked");
        for (var ref of references) {
          markedFootprints.add(ref[1]);
        }
        drawHighlights();
      }
      eventArgs.state = 'checked';
    } else {
      // checkbox unticked
      for (var ref of references) {
        refsSet.delete(ref[1]);
      }
      if (markWhenChecked) {
        row.classList.remove("checked");
        for (var ref of references) {
          markedFootprints.delete(ref[1]);
        }
        drawHighlights();
      }
      eventArgs.state = 'unchecked';
    }
    settings.checkboxStoredRefs[checkbox] = [...refsSet].join(",");
    writeStorage("checkbox_" + checkbox, settings.checkboxStoredRefs[checkbox]);
    updateCheckboxStats(checkbox);
    EventHandler.emitEvent(IBOM_EVENT_TYPES.CHECKBOX_CHANGE_EVENT, eventArgs);
  }
}

function clearHighlightedFootprints() {
  if (currentHighlightedRowId) {
    document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
    currentHighlightedRowId = null;
    highlightedFootprints = [];
    highlightedNet = null;
  }
}

function createRowHighlightHandler(rowid, refs, net) {
  return function () {
    if (currentHighlightedRowId) {
      if (currentHighlightedRowId == rowid) {
        return;
      }
      document.getElementById(currentHighlightedRowId).classList.remove("highlighted");
    }
    document.getElementById(rowid).classList.add("highlighted");
    currentHighlightedRowId = rowid;
    highlightedFootprints = refs ? refs.map(r => r[1]) : [];
    highlightedNet = net;
    drawHighlights();
    EventHandler.emitEvent(
      IBOM_EVENT_TYPES.HIGHLIGHT_EVENT, {
      rowid: rowid,
      refs: refs,
      net: net
    });
  }
}

function updateNetColors() {
  writeStorage("netColors", JSON.stringify(settings.netColors));
  redrawIfInitDone();
}

function netColorChangeHandler(net) {
  return (event) => {
    settings.netColors[net] = event.target.value;
    updateNetColors();
  }
}

function netColorRightClick(net) {
  return (event) => {
    if (event.button == 2) {
      event.preventDefault();
      event.stopPropagation();

      var style = getComputedStyle(topmostdiv);
      var defaultNetColor = style.getPropertyValue('--track-color').trim();
      event.target.value = defaultNetColor;
      delete settings.netColors[net];
      updateNetColors();
    }
  }
}

function entryMatches(entry) {
  if (settings.bommode == "netlist") {
    // entry is just a net name
    return entry.toLowerCase().indexOf(filter) >= 0;
  }
  // check refs
  if (!settings.hiddenColumns.includes("references")) {
    for (var ref of entry) {
      if (ref[0].toLowerCase().indexOf(filter) >= 0) {
        return true;
      }
    }
  }
  // check fields
  for (var i in config.fields) {
    var f = config.fields[i];
    if (!settings.hiddenColumns.includes(f)) {
      for (var ref of entry) {
        if (String(pcbdata.bom.fields[ref[1]][i]).toLowerCase().indexOf(filter) >= 0) {
          return true;
        }
      }
    }
  }
  return false;
}

function findRefInEntry(entry) {
  return entry.filter(r => r[0].toLowerCase() == reflookup);
}

function highlightFilter(s) {
  if (!filter) {
    return s;
  }
  var parts = s.toLowerCase().split(filter);
  if (parts.length == 1) {
    return s;
  }
  var r = "";
  var pos = 0;
  for (var i in parts) {
    if (i > 0) {
      r += '<mark class="highlight">' +
        s.substring(pos, pos + filter.length) +
        '</mark>';
      pos += filter.length;
    }
    r += s.substring(pos, pos + parts[i].length);
    pos += parts[i].length;
  }
  return r;
}

function checkboxSetUnsetAllHandler(checkboxname) {
  return function () {
    var checkboxnum = 0;
    while (checkboxnum < settings.checkboxes.length &&
      settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
      checkboxnum++;
    }
    if (checkboxnum >= settings.checkboxes.length) {
      return;
    }
    var allset = true;
    var checkbox;
    var row;
    for (row of bombody.childNodes) {
      checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
      if (!checkbox.checked || checkbox.indeterminate) {
        allset = false;
        break;
      }
    }
    for (row of bombody.childNodes) {
      checkbox = row.childNodes[checkboxnum + 1].childNodes[0];
      checkbox.checked = !allset;
      checkbox.indeterminate = false;
      checkbox.onchange();
    }
  }
}

function createColumnHeader(name, cls, comparator, is_checkbox = false) {
  var th = document.createElement("TH");
  th.innerHTML = name;
  th.classList.add(cls);
  if (is_checkbox)
    th.setAttribute("col_name", "bom-checkbox");
  else
    th.setAttribute("col_name", name);
  var span = document.createElement("SPAN");
  span.classList.add("sortmark");
  span.classList.add("none");
  th.appendChild(span);
  var spacer = document.createElement("div");
  spacer.className = "column-spacer";
  th.appendChild(spacer);
  spacer.onclick = function () {
    if (currentSortColumn && th !== currentSortColumn) {
      // Currently sorted by another column
      currentSortColumn.childNodes[1].classList.remove(currentSortOrder);
      currentSortColumn.childNodes[1].classList.add("none");
      currentSortColumn = null;
      currentSortOrder = null;
    }
    if (currentSortColumn && th === currentSortColumn) {
      // Already sorted by this column
      if (currentSortOrder == "asc") {
        // Sort by this column, descending order
        bomSortFunction = function (a, b) {
          return -comparator(a, b);
        }
        currentSortColumn.childNodes[1].classList.remove("asc");
        currentSortColumn.childNodes[1].classList.add("desc");
        currentSortOrder = "desc";
      } else {
        // Unsort
        bomSortFunction = null;
        currentSortColumn.childNodes[1].classList.remove("desc");
        currentSortColumn.childNodes[1].classList.add("none");
        currentSortColumn = null;
        currentSortOrder = null;
      }
    } else {
      // Sort by this column, ascending order
      bomSortFunction = comparator;
      currentSortColumn = th;
      currentSortColumn.childNodes[1].classList.remove("none");
      currentSortColumn.childNodes[1].classList.add("asc");
      currentSortOrder = "asc";
    }
    populateBomBody();
  }
  if (is_checkbox) {
    spacer.onclick = fancyDblClickHandler(
      spacer, spacer.onclick, checkboxSetUnsetAllHandler(name));
  }
  return th;
}

function populateBomHeader(placeHolderColumn = null, placeHolderElements = null) {
  while (bomhead.firstChild) {
    bomhead.removeChild(bomhead.firstChild);
  }
  var tr = document.createElement("TR");
  var th = document.createElement("TH");
  th.classList.add("numCol");

  var vismenu = document.createElement("div");
  vismenu.id = "vismenu";
  vismenu.classList.add("menu");

  var visbutton = document.createElement("div");
  visbutton.classList.add("visbtn");
  visbutton.classList.add("hideonprint");

  var viscontent = document.createElement("div");
  viscontent.classList.add("menu-content");
  viscontent.id = "vismenu-content";

  settings.columnOrder.forEach(column => {
    if (typeof column !== "string")
      return;

    // Skip empty columns
    if (column === "checkboxes" && settings.checkboxes.length == 0)
      return;
    else if (column === "Quantity" && settings.bommode == "ungrouped")
      return;

    var label = document.createElement("label");
    label.classList.add("menu-label");

    var input = document.createElement("input");
    input.classList.add("visibility_checkbox");
    input.type = "checkbox";
    input.onchange = function (e) {
      setShowBOMColumn(column, e.target.checked)
    };
    input.checked = !(settings.hiddenColumns.includes(column));

    label.appendChild(input);
    if (column.length > 0)
      label.append(column[0].toUpperCase() + column.slice(1));

    viscontent.appendChild(label);
  });

  viscontent.childNodes[0].classList.add("menu-label-top");

  vismenu.appendChild(visbutton);
  if (settings.bommode != "netlist") {
    vismenu.appendChild(viscontent);
    th.appendChild(vismenu);
  }
  tr.appendChild(th);

  var checkboxCompareClosure = function (checkbox) {
    return (a, b) => {
      var stateA = getCheckboxState(checkbox, a);
      var stateB = getCheckboxState(checkbox, b);
      if (stateA > stateB) return -1;
      if (stateA < stateB) return 1;
      return 0;
    }
  }
  var stringFieldCompareClosure = function (fieldIndex) {
    return (a, b) => {
      var fa = pcbdata.bom.fields[a[0][1]][fieldIndex];
      var fb = pcbdata.bom.fields[b[0][1]][fieldIndex];
      if (fa != fb) return fa > fb ? 1 : -1;
      else return 0;
    }
  }
  var referenceRegex = /(?<prefix>[^0-9]+)(?<number>[0-9]+)/;
  var compareRefs = (a, b) => {
    var ra = referenceRegex.exec(a);
    var rb = referenceRegex.exec(b);
    if (ra === null || rb === null) {
      if (a != b) return a > b ? 1 : -1;
      return 0;
    } else {
      if (ra.groups.prefix != rb.groups.prefix) {
        return ra.groups.prefix > rb.groups.prefix ? 1 : -1;
      }
      if (ra.groups.number != rb.groups.number) {
        return parseInt(ra.groups.number) > parseInt(rb.groups.number) ? 1 : -1;
      }
      return 0;
    }
  }
  if (settings.bommode == "netlist") {
    tr.appendChild(createColumnHeader("Net name", "bom-netname", (a, b) => {
      if (a > b) return -1;
      if (a < b) return 1;
      return 0;
    }));
    tr.appendChild(createColumnHeader("Color", "bom-color", (a, b) => {
      return 0;
    }));
  } else {
    // Filter hidden columns
    var columns = settings.columnOrder.filter(e => !settings.hiddenColumns.includes(e));
    var valueIndex = config.fields.indexOf("Value");
    var footprintIndex = config.fields.indexOf("Footprint");
    columns.forEach((column) => {
      if (column === placeHolderColumn) {
        var n = 1;
        if (column === "checkboxes")
          n = settings.checkboxes.length;
        for (i = 0; i < n; i++) {
          td = placeHolderElements.shift();
          tr.appendChild(td);
        }
        return;
      } else if (column === "checkboxes") {
        for (var checkbox of settings.checkboxes) {
          th = createColumnHeader(
            checkbox, "bom-checkbox", checkboxCompareClosure(checkbox), true);
          tr.appendChild(th);
        }
      } else if (column === "References") {
        tr.appendChild(createColumnHeader("References", "references", (a, b) => {
          var i = 0;
          while (i < a.length && i < b.length) {
            if (a[i] != b[i]) return compareRefs(a[i][0], b[i][0]);
            i++;
          }
          return a.length - b.length;
        }));
      } else if (column === "Value") {
        tr.appendChild(createColumnHeader("Value", "value", (a, b) => {
          var ra = a[0][1], rb = b[0][1];
          return valueCompare(
            pcbdata.bom.parsedValues[ra], pcbdata.bom.parsedValues[rb],
            pcbdata.bom.fields[ra][valueIndex], pcbdata.bom.fields[rb][valueIndex]);
        }));
        return;
      } else if (column === "Footprint") {
        tr.appendChild(createColumnHeader(
          "Footprint", "footprint", stringFieldCompareClosure(footprintIndex)));
      } else if (column === "Quantity" && settings.bommode == "grouped") {
        tr.appendChild(createColumnHeader("Quantity", "quantity", (a, b) => {
          return a.length - b.length;
        }));
      } else {
        // Other fields
        var i = config.fields.indexOf(column);
        if (i < 0)
          return;
        tr.appendChild(createColumnHeader(
          column, `field${i + 1}`, stringFieldCompareClosure(i)));
      }
    });
  }
  bomhead.appendChild(tr);
}

function populateBomBody(placeholderColumn = null, placeHolderElements = null) {
  const urlRegex = /^(https?:\/\/[^\s\/$.?#][^\s]*|file:\/\/([a-zA-Z]:|\/)[^\x00]+)$/;
  while (bom.firstChild) {
    bom.removeChild(bom.firstChild);
  }
  highlightHandlers = [];
  footprintIndexToHandler = {};
  netsToHandler = {};
  currentHighlightedRowId = null;
  var first = true;
  var style = getComputedStyle(topmostdiv);
  var defaultNetColor = style.getPropertyValue('--track-color').trim();
  if (settings.bommode == "netlist") {
    bomtable = pcbdata.nets.slice();
  } else {
    switch (settings.canvaslayout) {
      case 'F':
        bomtable = pcbdata.bom.F.slice();
        break;
      case 'FB':
        bomtable = pcbdata.bom.both.slice();
        break;
      case 'B':
        bomtable = pcbdata.bom.B.slice();
        break;
    }
    if (settings.bommode == "ungrouped") {
      // expand bom table
      expandedTable = []
      for (var bomentry of bomtable) {
        for (var ref of bomentry) {
          expandedTable.push([ref]);
        }
      }
      bomtable = expandedTable;
    }
  }
  if (bomSortFunction) {
    bomtable = bomtable.sort(bomSortFunction);
  }
  for (var i in bomtable) {
    var bomentry = bomtable[i];
    if (filter && !entryMatches(bomentry)) {
      continue;
    }
    var references = null;
    var netname = null;
    var tr = document.createElement("TR");
    var td = document.createElement("TD");
    var rownum = +i + 1;
    tr.id = "bomrow" + rownum;
    td.textContent = rownum;
    tr.appendChild(td);
    if (settings.bommode == "netlist") {
      netname = bomentry;
      td = document.createElement("TD");
      td.innerHTML = highlightFilter(netname ? netname : "&lt;no net&gt;");
      tr.appendChild(td);
      var color = settings.netColors[netname] || defaultNetColor;
      td = document.createElement("TD");
      var colorBox = document.createElement("INPUT");
      colorBox.type = "color";
      colorBox.value = color;
      colorBox.onchange = netColorChangeHandler(netname);
      colorBox.onmouseup = netColorRightClick(netname);
      colorBox.oncontextmenu = (e) => e.preventDefault();
      td.appendChild(colorBox);
      td.classList.add("color-column");
      tr.appendChild(td);
    } else {
      if (reflookup) {
        references = findRefInEntry(bomentry);
        if (references.length == 0) {
          continue;
        }
      } else {
        references = bomentry;
      }
      // Filter hidden columns
      var columns = settings.columnOrder.filter(e => !settings.hiddenColumns.includes(e));
      columns.forEach((column) => {
        if (column === placeholderColumn) {
          var n = 1;
          if (column === "checkboxes")
            n = settings.checkboxes.length;
          for (i = 0; i < n; i++) {
            td = placeHolderElements.shift();
            tr.appendChild(td);
          }
          return;
        } else if (column === "checkboxes") {
          for (var checkbox of settings.checkboxes) {
            if (checkbox) {
              td = document.createElement("TD");
              var input = document.createElement("input");
              input.type = "checkbox";
              input.onchange = createCheckboxChangeHandler(checkbox, references, tr);
              setBomCheckboxState(checkbox, input, references);
              if (input.checked && settings.markWhenChecked == checkbox) {
                tr.classList.add("checked");
              }
              td.appendChild(input);
              tr.appendChild(td);
            }
          }
        } else if (column === "References") {
          td = document.createElement("TD");
          td.innerHTML = highlightFilter(references.map(r => r[0]).join(", "));
          tr.appendChild(td);
        } else if (column === "Quantity" && settings.bommode == "grouped") {
          // Quantity
          td = document.createElement("TD");
          td.textContent = references.length;
          tr.appendChild(td);
        } else {
          // All the other fields
          var field_index = config.fields.indexOf(column)
          if (field_index < 0)
            return;
          var valueSet = new Set();
          references.map(r => r[1]).forEach((id) => valueSet.add(pcbdata.bom.fields[id][field_index]));
          td = document.createElement("TD");
          var output = new Array();
          for (let item of valueSet) {
            const visible = highlightFilter(String(item));
            if (typeof item === 'string' && item.match(urlRegex)) {
              output.push(`<a href="${item}" target="_blank">${visible}</a>`);
            } else {
              output.push(visible);
            }
          }
          td.innerHTML = output.join(", ");
          tr.appendChild(td);
        }
      });
    }
    bom.appendChild(tr);
    var handler = createRowHighlightHandler(tr.id, references, netname);
    tr.onmousemove = handler;
    highlightHandlers.push({
      id: tr.id,
      handler: handler,
    });
    if (references !== null) {
      for (var refIndex of references.map(r => r[1])) {
        footprintIndexToHandler[refIndex] = handler;
      }
    }
    if (netname !== null) {
      netsToHandler[netname] = handler;
    }
    if ((filter || reflookup) && first) {
      handler();
      first = false;
    }
  }
  EventHandler.emitEvent(
    IBOM_EVENT_TYPES.BOM_BODY_CHANGE_EVENT, {
    filter: filter,
    reflookup: reflookup,
    checkboxes: settings.checkboxes,
    bommode: settings.bommode,
  });
}

function highlightPreviousRow() {
  if (!currentHighlightedRowId) {
    highlightHandlers[highlightHandlers.length - 1].handler();
  } else {
    if (highlightHandlers.length > 1 &&
      highlightHandlers[0].id == currentHighlightedRowId) {
      highlightHandlers[highlightHandlers.length - 1].handler();
    } else {
      for (var i = 0; i < highlightHandlers.length - 1; i++) {
        if (highlightHandlers[i + 1].id == currentHighlightedRowId) {
          highlightHandlers[i].handler();
          break;
        }
      }
    }
  }
  smoothScrollToRow(currentHighlightedRowId);
}

function highlightNextRow() {
  if (!currentHighlightedRowId) {
    highlightHandlers[0].handler();
  } else {
    if (highlightHandlers.length > 1 &&
      highlightHandlers[highlightHandlers.length - 1].id == currentHighlightedRowId) {
      highlightHandlers[0].handler();
    } else {
      for (var i = 1; i < highlightHandlers.length; i++) {
        if (highlightHandlers[i - 1].id == currentHighlightedRowId) {
          highlightHandlers[i].handler();
          break;
        }
      }
    }
  }
  smoothScrollToRow(currentHighlightedRowId);
}

function populateBomTable() {
  populateBomHeader();
  populateBomBody();
  setBomHandlers();
  resizableGrid(bomhead);
}

function footprintsClicked(footprintIndexes) {
  var lastClickedIndex = footprintIndexes.indexOf(lastClicked);
  for (var i = 1; i <= footprintIndexes.length; i++) {
    var refIndex = footprintIndexes[(lastClickedIndex + i) % footprintIndexes.length];
    if (refIndex in footprintIndexToHandler) {
      lastClicked = refIndex;
      footprintIndexToHandler[refIndex]();
      smoothScrollToRow(currentHighlightedRowId);
      break;
    }
  }
}

function netClicked(net) {
  if (net in netsToHandler) {
    netsToHandler[net]();
    smoothScrollToRow(currentHighlightedRowId);
  } else {
    clearHighlightedFootprints();
    highlightedNet = net;
    drawHighlights();
  }
}

function updateFilter(input) {
  filter = input.toLowerCase();
  populateBomTable();
}

function updateRefLookup(input) {
  reflookup = input.toLowerCase();
  populateBomTable();
}

function changeCanvasLayout(layout) {
  document.getElementById("fl-btn").classList.remove("depressed");
  document.getElementById("fb-btn").classList.remove("depressed");
  document.getElementById("bl-btn").classList.remove("depressed");
  switch (layout) {
    case 'F':
      document.getElementById("fl-btn").classList.add("depressed");
      if (settings.bomlayout != "bom-only") {
        canvassplit.collapse(1);
      }
      break;
    case 'B':
      document.getElementById("bl-btn").classList.add("depressed");
      if (settings.bomlayout != "bom-only") {
        canvassplit.collapse(0);
      }
      break;
    default:
      document.getElementById("fb-btn").classList.add("depressed");
      if (settings.bomlayout != "bom-only") {
        canvassplit.setSizes([50, 50]);
      }
  }
  settings.canvaslayout = layout;
  writeStorage("canvaslayout", layout);
  resizeAll();
  changeBomMode(settings.bommode);
}

function populateMetadata() {
  document.getElementById("title").innerHTML = pcbdata.metadata.title;
  document.getElementById("revision").innerHTML = "Rev: " + pcbdata.metadata.revision;
  document.getElementById("company").innerHTML = pcbdata.metadata.company;
  document.getElementById("filedate").innerHTML = pcbdata.metadata.date;
  if (pcbdata.metadata.title != "") {
    document.title = pcbdata.metadata.title + " BOM";
  }
  // Calculate board stats
  var fp_f = 0,
    fp_b = 0,
    pads_f = 0,
    pads_b = 0,
    pads_th = 0;
  for (var i = 0; i < pcbdata.footprints.length; i++) {
    if (pcbdata.bom.skipped.includes(i)) continue;
    var mod = pcbdata.footprints[i];
    if (mod.layer == "F") {
      fp_f++;
    } else {
      fp_b++;
    }
    for (var pad of mod.pads) {
      if (pad.type == "th") {
        pads_th++;
      } else {
        if (pad.layers.includes("F")) {
          pads_f++;
        }
        if (pad.layers.includes("B")) {
          pads_b++;
        }
      }
    }
  }
  document.getElementById("stats-components-front").innerHTML = fp_f;
  document.getElementById("stats-components-back").innerHTML = fp_b;
  document.getElementById("stats-components-total").innerHTML = fp_f + fp_b;
  document.getElementById("stats-groups-front").innerHTML = pcbdata.bom.F.length;
  document.getElementById("stats-groups-back").innerHTML = pcbdata.bom.B.length;
  document.getElementById("stats-groups-total").innerHTML = pcbdata.bom.both.length;
  document.getElementById("stats-smd-pads-front").innerHTML = pads_f;
  document.getElementById("stats-smd-pads-back").innerHTML = pads_b;
  document.getElementById("stats-smd-pads-total").innerHTML = pads_f + pads_b;
  document.getElementById("stats-th-pads").innerHTML = pads_th;
  // Update version string
  document.getElementById("github-link").innerHTML = "InteractiveHtmlBom&nbsp;" +
    /^v\d+\.\d+/.exec(pcbdata.ibom_version)[0];
}

function changeBomLayout(layout) {
  document.getElementById("bom-btn").classList.remove("depressed");
  document.getElementById("lr-btn").classList.remove("depressed");
  document.getElementById("tb-btn").classList.remove("depressed");
  switch (layout) {
    case 'bom-only':
      document.getElementById("bom-btn").classList.add("depressed");
      if (bomsplit) {
        bomsplit.destroy();
        bomsplit = null;
        canvassplit.destroy();
        canvassplit = null;
      }
      document.getElementById("frontcanvas").style.display = "none";
      document.getElementById("backcanvas").style.display = "none";
      document.getElementById("topmostdiv").style.height = "";
      document.getElementById("topmostdiv").style.display = "block";
      break;
    case 'top-bottom':
      document.getElementById("tb-btn").classList.add("depressed");
      document.getElementById("frontcanvas").style.display = "";
      document.getElementById("backcanvas").style.display = "";
      document.getElementById("topmostdiv").style.height = "100%";
      document.getElementById("topmostdiv").style.display = "flex";
      document.getElementById("bomdiv").classList.remove("split-horizontal");
      document.getElementById("canvasdiv").classList.remove("split-horizontal");
      document.getElementById("frontcanvas").classList.add("split-horizontal");
      document.getElementById("backcanvas").classList.add("split-horizontal");
      if (bomsplit) {
        bomsplit.destroy();
        bomsplit = null;
        canvassplit.destroy();
        canvassplit = null;
      }
      bomsplit = Split(['#bomdiv', '#canvasdiv'], {
        sizes: [50, 50],
        onDragEnd: resizeAll,
        direction: "vertical",
        gutterSize: 5
      });
      canvassplit = Split(['#frontcanvas', '#backcanvas'], {
        sizes: [50, 50],
        gutterSize: 5,
        onDragEnd: resizeAll
      });
      break;
    case 'left-right':
      document.getElementById("lr-btn").classList.add("depressed");
      document.getElementById("frontcanvas").style.display = "";
      document.getElementById("backcanvas").style.display = "";
      document.getElementById("topmostdiv").style.height = "100%";
      document.getElementById("topmostdiv").style.display = "flex";
      document.getElementById("bomdiv").classList.add("split-horizontal");
      document.getElementById("canvasdiv").classList.add("split-horizontal");
      document.getElementById("frontcanvas").classList.remove("split-horizontal");
      document.getElementById("backcanvas").classList.remove("split-horizontal");
      if (bomsplit) {
        bomsplit.destroy();
        bomsplit = null;
        canvassplit.destroy();
        canvassplit = null;
      }
      bomsplit = Split(['#bomdiv', '#canvasdiv'], {
        sizes: [50, 50],
        onDragEnd: resizeAll,
        gutterSize: 5
      });
      canvassplit = Split(['#frontcanvas', '#backcanvas'], {
        sizes: [50, 50],
        gutterSize: 5,
        direction: "vertical",
        onDragEnd: resizeAll
      });
  }
  settings.bomlayout = layout;
  writeStorage("bomlayout", layout);
  changeCanvasLayout(settings.canvaslayout);
}

function changeBomMode(mode) {
  document.getElementById("bom-grouped-btn").classList.remove("depressed");
  document.getElementById("bom-ungrouped-btn").classList.remove("depressed");
  document.getElementById("bom-netlist-btn").classList.remove("depressed");
  var chkbxs = document.getElementsByClassName("visibility_checkbox");

  switch (mode) {
    case 'grouped':
      document.getElementById("bom-grouped-btn").classList.add("depressed");
      for (var i = 0; i < chkbxs.length; i++) {
        chkbxs[i].disabled = false;
      }
      break;
    case 'ungrouped':
      document.getElementById("bom-ungrouped-btn").classList.add("depressed");
      for (var i = 0; i < chkbxs.length; i++) {
        chkbxs[i].disabled = false;
      }
      break;
    case 'netlist':
      document.getElementById("bom-netlist-btn").classList.add("depressed");
      for (var i = 0; i < chkbxs.length; i++) {
        chkbxs[i].disabled = true;
      }
  }

  writeStorage("bommode", mode);
  if (mode != settings.bommode) {
    settings.bommode = mode;
    bomSortFunction = null;
    currentSortColumn = null;
    currentSortOrder = null;
    clearHighlightedFootprints();
  }
  populateBomTable();
}

function focusFilterField() {
  focusInputField(document.getElementById("filter"));
}

function focusRefLookupField() {
  focusInputField(document.getElementById("reflookup"));
}

function toggleBomCheckbox(bomrowid, checkboxnum) {
  if (!bomrowid || checkboxnum > settings.checkboxes.length) {
    return;
  }
  var bomrow = document.getElementById(bomrowid);
  var checkbox = bomrow.childNodes[checkboxnum].childNodes[0];
  checkbox.checked = !checkbox.checked;
  checkbox.indeterminate = false;
  checkbox.onchange();
}

function checkBomCheckbox(bomrowid, checkboxname) {
  var checkboxnum = 0;
  while (checkboxnum < settings.checkboxes.length &&
    settings.checkboxes[checkboxnum].toLowerCase() != checkboxname.toLowerCase()) {
    checkboxnum++;
  }
  if (!bomrowid || checkboxnum >= settings.checkboxes.length) {
    return;
  }
  var bomrow = document.getElementById(bomrowid);
  var checkbox = bomrow.childNodes[checkboxnum + 1].childNodes[0];
  checkbox.checked = true;
  checkbox.indeterminate = false;
  checkbox.onchange();
}

function setBomCheckboxes(value) {
  writeStorage("bomCheckboxes", value);
  settings.checkboxes = value.split(",").map((e) => e.trim()).filter((e) => e);
  prepCheckboxes();
  populateMarkWhenCheckedOptions();
  setMarkWhenChecked(settings.markWhenChecked);
}

function setMarkWhenChecked(value) {
  writeStorage("markWhenChecked", value);
  settings.markWhenChecked = value;
  markedFootprints.clear();
  for (var ref of (value ? getStoredCheckboxRefs(value) : [])) {
    markedFootprints.add(ref);
  }
  populateBomTable();
  drawHighlights();
}

function prepCheckboxes() {
  var table = document.getElementById("checkbox-stats");
  while (table.childElementCount > 1) {
    table.removeChild(table.lastChild);
  }
  if (settings.checkboxes.length) {
    table.style.display = "";
  } else {
    table.style.display = "none";
  }
  for (var checkbox of settings.checkboxes) {
    var tr = document.createElement("TR");
    var td = document.createElement("TD");
    td.innerHTML = checkbox;
    tr.appendChild(td);
    td = document.createElement("TD");
    td.id = "checkbox-stats-" + checkbox;
    var progressbar = document.createElement("div");
    progressbar.classList.add("bar");
    td.appendChild(progressbar);
    var text = document.createElement("div");
    text.classList.add("text");
    td.appendChild(text);
    tr.appendChild(td);
    table.appendChild(tr);
    updateCheckboxStats(checkbox);
  }
}

function populateMarkWhenCheckedOptions() {
  var container = document.getElementById("markWhenCheckedContainer");

  if (settings.checkboxes.length == 0) {
    container.parentElement.style.display = "none";
    return;
  }

  container.innerHTML = '';
  container.parentElement.style.display = "inline-block";

  function createOption(name, displayName) {
    var id = "markWhenChecked-" + name;

    var div = document.createElement("div");
    div.classList.add("radio-container");

    var input = document.createElement("input");
    input.type = "radio";
    input.name = "markWhenChecked";
    input.value = name;
    input.id = id;
    input.onchange = () => setMarkWhenChecked(name);
    div.appendChild(input);

    // Preserve the selected element when the checkboxes change
    if (name == settings.markWhenChecked) {
      input.checked = true;
    }

    var label = document.createElement("label");
    label.innerHTML = displayName;
    label.htmlFor = id;
    div.appendChild(label);

    container.appendChild(div);
  }
  createOption("", "None");
  for (var checkbox of settings.checkboxes) {
    createOption(checkbox, checkbox);
  }
}

function updateCheckboxStats(checkbox) {
  var checked = getStoredCheckboxRefs(checkbox).size;
  var total = pcbdata.footprints.length - pcbdata.bom.skipped.length;
  var percent = checked * 100.0 / total;
  var td = document.getElementById("checkbox-stats-" + checkbox);
  td.firstChild.style.width = percent + "%";
  td.lastChild.innerHTML = checked + "/" + total + " (" + Math.round(percent) + "%)";
}

function constrain(number, min, max) {
  return Math.min(Math.max(parseInt(number), min), max);
}

document.onkeydown = function (e) {
  switch (e.key) {
    case "n":
      if (document.activeElement.type == "text") {
        return;
      }
      if (currentHighlightedRowId !== null) {
        checkBomCheckbox(currentHighlightedRowId, "placed");
        highlightNextRow();
        e.preventDefault();
      }
      break;
    case "ArrowUp":
      highlightPreviousRow();
      e.preventDefault();
      break;
    case "ArrowDown":
      highlightNextRow();
      e.preventDefault();
      break;
    case "ArrowLeft":
    case "ArrowRight":
      if (document.activeElement.type != "text") {
        e.preventDefault();
        let boardRotationElement = document.getElementById("boardRotation")
        settings.boardRotation = parseInt(boardRotationElement.value);  // degrees / 5
        if (e.key == "ArrowLeft") {
          settings.boardRotation += 3;  // 15 degrees
        }
        else {
          settings.boardRotation -= 3;
        }
        settings.boardRotation = constrain(settings.boardRotation, boardRotationElement.min, boardRotationElement.max);
        boardRotationElement.value = settings.boardRotation
        setBoardRotation(settings.boardRotation);
      }
      break;
    default:
      break;
  }
  if (e.altKey) {
    switch (e.key) {
      case "f":
        focusFilterField();
        e.preventDefault();
        break;
      case "r":
        focusRefLookupField();
        e.preventDefault();
        break;
      case "z":
        changeBomLayout("bom-only");
        e.preventDefault();
        break;
      case "x":
        changeBomLayout("left-right");
        e.preventDefault();
        break;
      case "c":
        changeBomLayout("top-bottom");
        e.preventDefault();
        break;
      case "v":
        changeCanvasLayout("F");
        e.preventDefault();
        break;
      case "b":
        changeCanvasLayout("FB");
        e.preventDefault();
        break;
      case "n":
        changeCanvasLayout("B");
        e.preventDefault();
        break;
      default:
        break;
    }
    if (e.key >= '1' && e.key <= '9') {
      toggleBomCheckbox(currentHighlightedRowId, parseInt(e.key));
      e.preventDefault();
    }
  }
}

function hideNetlistButton() {
  document.getElementById("bom-ungrouped-btn").classList.remove("middle-button");
  document.getElementById("bom-ungrouped-btn").classList.add("right-most-button");
  document.getElementById("bom-netlist-btn").style.display = "none";
}

function topToggle() {
  var top = document.getElementById("top");
  var toptoggle = document.getElementById("toptoggle");
  if (top.style.display === "none") {
    top.style.display = "flex";
    toptoggle.classList.remove("flipped");
  } else {
    top.style.display = "none";
    toptoggle.classList.add("flipped");
  }
}

window.onload = function (e) {
  initUtils();
  initRender();
  initStorage();
  initDefaults();
  cleanGutters();
  populateMetadata();
  dbgdiv = document.getElementById("dbg");
  bom = document.getElementById("bombody");
  bomhead = document.getElementById("bomhead");
  filter = "";
  reflookup = "";
  if (!("nets" in pcbdata)) {
    hideNetlistButton();
  }
  initDone = true;
  setBomCheckboxes(document.getElementById("bomCheckboxes").value);
  // Triggers render
  changeBomLayout(settings.bomlayout);

  // Users may leave fullscreen without touching the checkbox. Uncheck.
  document.addEventListener('fullscreenchange', () => {
    if (!document.fullscreenElement)
      document.getElementById('fullscreenCheckbox').checked = false;
  });
}

window.onresize = resizeAll;
window.matchMedia("print").addListener(resizeAll);

///////////////////////////////////////////////

///////////////////////////////////////////////
// EventHandler.registerCallback(IBOM_EVENT_TYPES.BOM_BODY_CHANGE_EVENT, () => {
//     for(var tr of bom.childNodes) {
//         tr.onclick = tr.onmousemove;
//         tr.onmousemove = null;
//     };
// });

///////////////////////////////////////////////
  </script>
</head>

<body>

<div id="topmostdiv" class="topmostdiv">
  <div id="top">
    <div id="fileinfodiv">
      <table class="fileinfo">
        <tbody>
          <tr>
            <td id="title" class="title" style="width: 70%">
              Title
            </td>
            <td id="revision" class="title" style="width: 30%">
              Revision
            </td>
          </tr>
          <tr>
            <td id="company">
              Company
            </td>
            <td id="filedate">
              Date
            </td>
          </tr>
        </tbody>
      </table>
    </div>
    <div id="bomcontrols">
      <div class="hideonprint menu">
        <button class="menubtn"></button>
        <div class="menu-content">
          <label class="menu-label menu-label-top" style="width: calc(50% - 18px)">
            <input id="darkmodeCheckbox" type="checkbox" onchange="setDarkMode(this.checked)">
            Dark mode
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label menu-label-top" style="width: calc(50% - 17px); border-left: 0;">
            <input id="fullscreenCheckbox" type="checkbox" onchange="setFullscreen(this.checked)">
            Full Screen
          </label>
          <label class="menu-label" style="width: calc(50% - 18px)">
            <input id="fabricationCheckbox" type="checkbox" checked onchange="fabricationVisible(this.checked)">
            Fab layer
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
            <input id="silkscreenCheckbox" type="checkbox" checked onchange="silkscreenVisible(this.checked)">
            Silkscreen
          </label>
          <label class="menu-label" style="width: calc(50% - 18px)">
            <input id="referencesCheckbox" type="checkbox" checked onchange="referencesVisible(this.checked)">
            References
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
            <input id="valuesCheckbox" type="checkbox" checked onchange="valuesVisible(this.checked)">
            Values
          </label>
          <div id="tracksAndZonesCheckboxes">
            <label class="menu-label" style="width: calc(50% - 18px)">
              <input id="tracksCheckbox" type="checkbox" checked onchange="tracksVisible(this.checked)">
              Tracks
            </label><!-- This comment eats space! All of it!
            --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
              <input id="zonesCheckbox" type="checkbox" checked onchange="zonesVisible(this.checked)">
              Zones
            </label>
          </div>
          <label class="menu-label" style="width: calc(50% - 18px)">
            <input id="padsCheckbox" type="checkbox" checked onchange="padsVisible(this.checked)">
            Pads
          </label><!-- This comment eats space! All of it!
          --><label class="menu-label" style="width: calc(50% - 17px); border-left: 0;">
            <input id="dnpOutlineCheckbox" type="checkbox" checked onchange="dnpOutline(this.checked)">
            DNP outlined
          </label>
          <label class="menu-label">
            <input id="dragCheckbox" type="checkbox" checked onchange="setRedrawOnDrag(this.checked)">
            Continuous redraw on drag
          </label>
          <label class="menu-label">
            Highlight first pin
            <form id="highlightpin1">
              <div class="flexbox">
                <label>
                  <input type="radio" name="highlightpin1" value="none" onchange="setHighlightPin1('none')">
                  None
                </label>
                <label>
                  <input type="radio" name="highlightpin1" value="all" onchange="setHighlightPin1('all')">
                  All
                </label>
                <label>
                  <input type="radio" name="highlightpin1" value="selected" onchange="setHighlightPin1('selected')">
                  Selected
                </label>
              </div>
            </form>
          </label>
          <label class="menu-label">
            <span>Board rotation</span>
            <span style="float: right"><span id="rotationDegree">0</span>&#176;</span>
            <input id="boardRotation" type="range" min="-36" max="36" value="0" class="slider" oninput="setBoardRotation(this.value)">
          </label>
          <label class="menu-label">
            <input id="offsetBackRotationCheckbox" type="checkbox" onchange="setOffsetBackRotation(this.checked)">
            Offset back rotation
          </label>
          <label class="menu-label">
            <div style="margin-left: 5px">Bom checkboxes</div>
            <input id="bomCheckboxes" class="menu-textbox" type=text
                   oninput="setBomCheckboxes(this.value)">
          </label>
          <label class="menu-label">
            <div style="margin-left: 5px">Mark when checked</div>
            <div id="markWhenCheckedContainer"></div>
          </label>
          <label class="menu-label">
            <span class="shameless-plug">
              <span>Created using</span>
              <a id="github-link" target="blank" href="https://github.com/openscopeproject/InteractiveHtmlBom">InteractiveHtmlBom</a>
              <a target="blank" title="Mouse and keyboard help" href="https://github.com/openscopeproject/InteractiveHtmlBom/wiki/Usage#bom-page-mouse-actions" style="text-decoration: none;"><label class="help-link">?</label></a>
            </span>
          </label>
        </div>
      </div>
      <div class="button-container hideonprint">
        <button id="fl-btn" class="left-most-button" onclick="changeCanvasLayout('F')"
                title="Front only">F
        </button>
        <button id="fb-btn" class="middle-button" onclick="changeCanvasLayout('FB')"
                title="Front and Back">FB
        </button>
        <button id="bl-btn" class="right-most-button" onclick="changeCanvasLayout('B')"
                title="Back only">B
        </button>
      </div>
      <div class="button-container hideonprint">
        <button id="bom-btn" class="left-most-button" onclick="changeBomLayout('bom-only')"
                title="BOM only"></button>
        <button id="lr-btn" class="middle-button" onclick="changeBomLayout('left-right')"
                title="BOM left, drawings right"></button>
        <button id="tb-btn" class="right-most-button" onclick="changeBomLayout('top-bottom')"
                title="BOM top, drawings bot"></button>
      </div>
      <div class="button-container hideonprint">
        <button id="bom-grouped-btn" class="left-most-button" onclick="changeBomMode('grouped')"
                title="Grouped BOM"></button>
        <button id="bom-ungrouped-btn" class="middle-button" onclick="changeBomMode('ungrouped')"
                title="Ungrouped BOM"></button>
        <button id="bom-netlist-btn" class="right-most-button" onclick="changeBomMode('netlist')"
                title="Netlist"></button>
      </div>
      <div class="hideonprint menu">
        <button class="statsbtn"></button>
        <div class="menu-content">
          <table class="stats">
            <tbody>
              <tr>
                <td width="40%">Board stats</td>
                <td>Front</td>
                <td>Back</td>
                <td>Total</td>
              </tr>
              <tr>
                <td>Components</td>
                <td id="stats-components-front">~</td>
                <td id="stats-components-back">~</td>
                <td id="stats-components-total">~</td>
              </tr>
              <tr>
                <td>Groups</td>
                <td id="stats-groups-front">~</td>
                <td id="stats-groups-back">~</td>
                <td id="stats-groups-total">~</td>
              </tr>
              <tr>
                <td>SMD pads</td>
                <td id="stats-smd-pads-front">~</td>
                <td id="stats-smd-pads-back">~</td>
                <td id="stats-smd-pads-total">~</td>
              </tr>
              <tr>
                <td>TH pads</td>
                <td colspan=3 id="stats-th-pads">~</td>
              </tr>
            </tbody>
          </table>
          <table class="stats">
            <col width="40%"/><col />
            <tbody id="checkbox-stats">
              <tr>
                <td colspan=2 style="border-top: 0">Checkboxes</td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
      <div class="hideonprint menu">
        <button class="iobtn"></button>
        <div class="menu-content">
          <div class="menu-label menu-label-top">
            <div style="margin-left: 5px;">Save board image</div>
            <div class="flexbox">
              <input id="render-save-width" class="menu-textbox" type="text" value="1000" placeholder="Width"
                  style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
              <span>X</span>
              <input id="render-save-height" class="menu-textbox" type="text" value="1000" placeholder="Height"
                  style="flex-grow: 1; width: 50px;" oninput="validateSaveImgDimension(this)">
            </div>
            <label>
              <input id="render-save-transparent" type="checkbox">
              Transparent background
            </label>
            <div class="flexbox">
              <button class="savebtn" onclick="saveImage('F')">Front</button>
              <button class="savebtn" onclick="saveImage('B')">Back</button>
            </div>
          </div>
          <div class="menu-label">
            <span style="margin-left: 5px;">Config and checkbox state</span>
            <div class="flexbox">
              <button class="savebtn" onclick="saveSettings()">Export</button>
              <button class="savebtn" onclick="loadSettings()">Import</button>
              <button class="savebtn" onclick="resetSettings()">Reset</button>
            </div>
          </div>
          <div class="menu-label">
            <span style="margin-left: 5px;">Save bom table as</span>
            <div class="flexbox">
              <button class="savebtn" onclick="saveBomTable('csv')">csv</button>
              <button class="savebtn" onclick="saveBomTable('txt')">txt</button>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
  <div id="topdivider">
    <div class="hideonprint">
      <div id="toptoggle" onclick="topToggle()">︽</div>
    </div>
  </div>
  <div id="bot" class="split" style="flex: 1 1">
    <div id="bomdiv" class="split split-horizontal">
      <div style="width: 100%">
        <input id="reflookup" class="textbox searchbox reflookup hideonprint" type="text" placeholder="Ref lookup"
               oninput="updateRefLookup(this.value)">
        <input id="filter" class="textbox searchbox filter hideonprint" type="text" placeholder="Filter"
               oninput="updateFilter(this.value)">
        <div class="button-container hideonprint" style="float: left; margin: 0;">
          <button id="copy" title="Copy bom table to clipboard"
               onclick="saveBomTable('clipboard')"></button>
        </div>
      </div>
      <div id="dbg"></div>
      <table class="bom" id="bomtable">
        <thead id="bomhead">
        </thead>
        <tbody id="bombody">
        </tbody>
      </table>
    </div>
    <div id="canvasdiv" class="split split-horizontal">
      <div id="frontcanvas" class="split" touch-action="none" style="overflow: hidden">
        <div style="position: relative; width: 100%; height: 100%;">
          <canvas id="F_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
          <canvas id="F_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
          <canvas id="F_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
          <canvas id="F_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
        </div>
      </div>
      <div id="backcanvas" class="split" touch-action="none" style="overflow: hidden">
        <div style="position: relative; width: 100%; height: 100%;">
          <canvas id="B_bg" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas>
          <canvas id="B_fab" style="position: absolute; left: 0; top: 0; z-index: 1;"></canvas>
          <canvas id="B_slk" style="position: absolute; left: 0; top: 0; z-index: 2;"></canvas>
          <canvas id="B_hl" style="position: absolute; left: 0; top: 0; z-index: 3;"></canvas>
        </div>
      </div>
    </div>
  </div>
</div>

</body>

</html>
